Funciones SQL
SQL Server proporciona al usuario la posibilidad de definir sus propias funciones, conocidad como UDF (user defined functions). Exisiten tres tipos de funciones. Estasson:
• Funciones escalares.
• Funciones en línea.
• Funciones en línea de multiples sentencias
Funciones escalares
Las funciones escalares devuelven un único valor de cualquier tipo de losdatos tal como int, money, varchar, real, etc.
La sintaxis para una función escalar es la siguiente:
CREATE FUNCTION
(
-- Lista de parámetros
, ...
)
-- Tipo de datos que devuelve lafunción.
RETURNS
AS
BEGIN
...
END
El siguiente ejemplo muestra como crear una función escalar.
CREATE FUNCTION fn_MultiplicaSaldo
(
@NumCuenta VARCHAR(20),
@MultiplicadorDECIMAL(10,2)
)
RETURNS DECIMAL(10,2)
AS
BEGIN
DECLARE @Saldo DECIMAL(10,2),
@Return DECIMAL(10,2)
SELECT @Saldo = SALDO
FROM CUENTAS
WHERE NUMCUENTA = @NumCuenta
SET @Return = @Saldo *@Multiplicador
RETURN @Return
END
Pueden ser utilizadas en cualquier sentencia Transact SQL. Un aspecto a tener en cuenta, es que para utilizar una función escalar debemos identificar el nombrede la función con el propietario de la misma.
El siguiente ejemplo muestra como utilizar la función anteriormente creada en una sentencia Transact SQL. Un aspecto muy a tener en cuenta es que lafunción ejecutará sus sentencias SELECT una vez por cada fila del conjunto de resultados devuelto por la consulta SELECT principal.
SELECT IDCUENTA,
NUMCUENTA,
SALDO,
FXALTA,
--Ejecucion de la funcion:
dbo.fn_MultiplicaSaldo( NUMCUENTA, IDCUENTA) AS RESULTADO
FROM CUENTAS
El siguiente ejemplo muestra como utilizar una función escalar en un script Transact SQL.
DECLARE@NumCuenta VARCHAR(20),
@Resultado DECIMAL(10,2)
SET @NumCuenta = '200700000001'
SET @Resultado = dbo.fn_MultiplicaSaldo(@NumCuenta, 30.5)
PRINT @Resultado
Las funciones escalares son...
Regístrate para leer el documento completo.