Creacion de funciones

Son rutinas que constan de una o mas instrucciones que sirven para encapsular codigo y poder reutilizarlo, puede tomar 0 o más parámetros de entrada y devuelve un valor escalar o una tabla. Los parámetros de entrada pueden ser de cualquier tipo excepto timestamp, cursor o table.

Sintaxis: MSDN

Ejemplo:

Creación de una función escalar:

CREATE FUNCTION BDs(@COLLATION_NAME VARCHAR(50) = NULL) RETURNS INT
AS
BEGIN
DECLARE @RET INT
IF @COLLATION_NAME IS NULL
SET @RET = (SELECT COUNT(*) FROM sys.databases WHERE COLLATION_NAME IS NULL)
ELSE
SET @RET = (SELECT COUNT(*) FROM sys.databases WHERE COLLATION_NAME = @COLLATION_NAME)
RETURN @RET
END
GO

Creación de una funcion con valores de tabla en linea:

CREATE FUNCTION BDs(@COLLATION VARCHAR(50)) RETURNS TABLE
AS
RETURN(SELECT * FROM SYS.DATABASES WHERE COLLATION_NAME=@COLLATION)
GO

Creación de una función con valores de tabla de varias instrucciones:

CREATE FUNCTION BDs(@COLLATION VARCHAR(50))
RETURNS @RET TABLE (NAME VARCHAR(50) PRIMARY KEY)
AS
BEGIN
IF(@COLLATION='')
BEGIN
INSERT @RET
SELECT [NAME] FROM SYS.DATABASES WHERE COLLATION_NAME IS NULL
END
ELSE
BEGIN
INSERT @RET
SELECT [NAME] FROM SYS.DATABASES WHERE COLLATION_NAME = @COLLATION
END
RETURN
END
GO

Buscar este blog

Seguidores

Blogs amigos