Una Función Escalar es aquella que devuelve un valor escalar único. Ejemplo:
CREATE FUNCTION f_escalar (@parametro int) RETURNS INT AS
BEGIN
DECLARE @resultado int
SET @resultado=(@parametro*2)-10
RETURN @resultado
END
GO
Una Función en Línea, por el contrario devuelve un conjunto de filas y columnas, o sea una tabla, que podemos usar en la llamada a la función con JOIN con otras tablas, etc. Sin embargo no podremos hacer uso de ORDER BY. Ejemplo:GO
CREATE FUNCTION f_linea(@parametro_desde INT, @parametro_hasta INT) RETURNS TABLE AS
RETURN
(
SELECT * from [Person].Contact where ContactID>=@parametro_desde AND ContactID<=@parametro_hasta
)
GO
Una Función en Línea de Múltiples Sentencias también devuelve un conjunto de filas y columnas, pero con la excepción de que es más compleja la lógica subyacente, y que podemos definir la tabla. Ejemplo:
GO
Una Función en Línea de Múltiples Sentencias también devuelve un conjunto de filas y columnas, pero con la excepción de que es más compleja la lógica subyacente, y que podemos definir la tabla. Ejemplo:
CREATE FUNCTION f_multiple(@Edad int) RETURNS @invitados TABLE
(
Codigo int
,Nombre varchar(50)
,Flag_invitado char
) AS
BEGIN
INSERT INTO @invitados
SELECT Codigo, Nombre, 'N'
FROM Persona WHERE Edad<@Edad;
INSERT INTO @invitados
SELECT Codigo, Nombre, 'S'
FROM Persona WHERE Edad>=@Edad
RETURN
END
GO
No hay comentarios :
Publicar un comentario