programación, las funciones definidas por el usuario de Microsoft SQL Server son rutinas que aceptan parámetros, realizan una acción, como un cálculo complejo, y devuelven el resultado de esa acción como un valor.El valor devuelto puede ser un valor escalar único o un conjunto de resultados. Ventajas de las funciones definidas por el usuario ● Permiten una programación modular. ● Puede crear la función una vez, almacenarla en la base de datos y llamarla desde el programa tantas veces como desee. Las funciones definidas por el usuario se pueden modificar, independientemente del código de origen del programa. ● Permiten una ejecución más rápida. Ventajas de las funciones definidas por el usuario ● Al igual que los procedimientos almacenados, las funciones definidas por el usuario Transact-SQL reducen el costo de compilación del código Transact-SQL almacenando los planes en la caché y reutilizándolos para ejecuciones repetidas. Esto significa que no es necesario volver a analizar y optimizar la función definida por el usuario con cada uso, lo que permite obtener tiempos de ejecución mucho más rápidos. Ventajas de las funciones definidas por el usuario ● Las funciones CLR ofrecen una ventaja de rendimiento importante sobre las funciones Transact-SQL para tareas de cálculo, manipulación de cadenas y lógica empresarial. Las funciones Transact-SQL se adecuan mejor a la lógica intensiva del acceso a datos. ● Pueden reducir el tráfico de red. ● Una operación que filtra datos basándose en restricciones complejas que no se puede expresar en una sola expresión escalar se puede expresar como una función. Componentes de una función definida por el usuario ● Todas las funciones definidas por el usuario tienen la misma estructura de dos partes: un encabezado y un cuerpo. La función toma cero o más parámetros de entrada y devuelve un valor escalar o una tabla. ● El encabezado define: – Nombre de función con nombre de propietario o esquema opcional – Nombre del parámetro de entrada y tipo de datos – Opciones aplicables al parámetro de entrada – Tipo de datos de parámetro devueltos y nombre opcional – Opciones aplicables al parámetro devuelto Componentes de una función definida por el usuario ● El cuerpo define la acción o la lógica que la función va a realizar. Contiene: – Una o más instrucciones Transact-SQL que ejecutan la lógica de la función – Una referencia a un ensamblado .NET Ejemplo de función ●
CREATE FUNCTION dbo.GetWeekDay -- function name
(@Date datetime) -- input parameter name and data type RETURNS int -- return parameter data type AS BEGIN -- begin body definition RETURN DATEPART (weekday, @Date) -- action performed END; GO
SELECT dbo.GetWeekDay(CONVERT(DATETIME,'20020201',101)) AS DayOfWeek; GO