You are on page 1of 10

Implementacin de Base de Datos con

Microsoft SQL Server

Funciones definidas por el usuario

Ing. Luis Alberto Dvila Hurtado


1

16
Funciones definidas por el Usuario

1. Qu es una funcin definida por el


usuario?
2. Tipos de funciones definidas por el
usuario
3. Creando e invocando funciones definidas
por el usuario
4. Modificando y eliminando
funciones definidas por el usuario
5. Recomendaciones
17
Qu es una funcin definida por el usuario?

Subrutinas formadas por una o varias


instrucciones T-SQL que se pueden
utilizar para encapsular un cdigo con el
fin de utilizarlo de nuevo posteriormente
No tienen ninguno o tienen
varios parmetros de entrada
Devuelven un nico valor

18
Tipos de funciones definida por el usuario
Funciones de valores escalares
Si la clusula RETURNS especific uno de los
tipos de datos escalares
Se pueden definir utilizando varias instrucciones T-
SQL
Funciones de valores de tabla
Si la clusula RETURNS especifica TABLE
Se pueden clasificar como en funciones en lnea o de
mltiples instrucciones
Si RETURNS especifica TABLE sin una lista
de columnas, la funcin es en lnea
Si RETURNS especifica un tipo TABLE con columnas
y sus tipos de datos, se trata de una funcin de
valores de tabla de mltiples instrucciones
19
Creando e invocando funciones escalares
Usar CREATE FUNCTION
CREATE FUNCTION NumEmp1 ( @depa char(15) )
RETURNS int
BEGIN
DECLARE @num int
SELECT @num = COUNT(*)
FROM Empleado As E JOIN Departamento As D
ON E.numero_Dep =
D.numero_Dep WHERE NombreD = @depa
RETURN @num
END
Invovando funciones:
Se pueden llamar en aquellos lugares donde se utilizan
expresiones escalares
Utilice como mnimo el nombre de dos partes de la funcin 20
Creando e invocando funciones de
valores de tabla en lnea

Crean funciones:
CREATE FUNCTION NumEmp2 (@depa char(15))
RETURNS table
RETURN (SELECT COUNT(*) as CUENTA
FROM Empleado As E JOIN Departamento As
D ON E.numero_Dep = D.numero_Dep
WHERE NombreD = @depa)

Invocando funciones
Se puede utilizar donde estn permitidas expresiones de tabla
o vista en consultas T-SQL
Pueden llamarse utilizando un nombre de una sola parte
21
Creando funciones de valores de tabla
de mltiples instrucciones

CREATE FUNCTION NumEmp3 (@depa char(15))


RETURNS @Ret_NumEmp3 table (col1 int)
BEGIN
INSERT INTO @Ret_NumEmp3
SELECT COUNT(*)
FROM Empleado As E JOIN Departamento As
D ON E.numero_Dep = D.numero_Dep
WHERE NombreD = @depa
RETURN
END

22
Invocando funciones

Nombre de funcin seguido de


parntesis
Dentro de los parntesis especificar los
argumentos
No especificar nombre de parmetros
Proporcionar valores de argumentos
para todos los parmetros y en la
misma secuencia en que estn definidos
23
Modificando y eliminando funciones
Modificando funciones
ALTER FUNCTION NumEmp2 (@depa char(15))
RETURNS table
RETURN (SELECT COUNT(*) As CUENTA
FROM Empleado As E JOIN Departamento As
D ON E.numero_Dep = D.numero_Dep WHERE
sexo = 1 AND NombreD = @depa)

Eliminando funciones
DROP FUNCTION NumEmp2
24
Recomendaciones

Las funciones que devuelven un tipo de


datos table pueden ser unas eficaces
alternativas a las vistas
Una funcin que devuelve el tipo de
datos table tambin puede reemplazar
procedimientos almacenados
Si el procedimiento almacenado devuelve un
solo conjunto de resultados, defina una
funcin de valores de tabla.
Si el procedimiento almacenado calcula
un valor escalar, defina una funcin
escalar.

You might also like