You are on page 1of 4

FUNCIONES SQL

SQL Server nos proporciona los siguientes tipos de funciones: Funciones Integradas Funciones definidas por el U suario FUNCIONES INTEGRADAS (Funciones del Sistema) SQL Server proporciona las funciones integradas para ayudarle a realizar diver sas operaciones. No se pueden modificar. Puede utilizar funciones integradas en instrucciones Transact-SQL para:

Tener acceso a informacin de las tablas del sistema de SQL Server sin tener acceso a las tablas del sistema directamente. Realizar tareas habituales como SUM, GETDATE o IDENTITY.

Las funciones integradas devuelven tipos de datos escalares o table. Por ejemplo, @@ERROR devuelve 0 si la ltima instruccin Transact -SQL se ejecut correctamente. Si la instruccin gener un error, @@ERROR devuelve el nmero de error. Y la funcin SUM(parameter) devuelve la suma de todos los valores del parmetro. Para obtener ms informacin acerca de las funciones integradas, vea Usar las funciones del sistema. FUNCIONES DEFINIDAS POR EL USUARIO Las funciones definidas por el usuario se crean con la instruccin CREATE FUNCTION, se modifican con la instruccin ALTER FUNCTION y se quitan con la instruccin DROP FUNCTION. Los nombres completos de las funciones definidas por el usuario ( schema_name.function_name ) deben ser nicos. schema_name Ejemplo: dbo

Instrucciones vlidas en una funcin Entre los tipos de instrucciones vlidos en una funcin se incluyen:

Las instrucciones DECLARE pueden utilizarse para definir variables y cursores de datos locales de la funcin. La asignacin de valores a objetos locales de la funcin, como la utilizacin de SET para asignar valores a variables locales escalares y de tabla. Las operaciones de cursores que hacen referencia a cursores locales que estn declarados, abiertos, cerrados y no asignados en la funcin. No se admiten las instrucciones FETCH que devuelven datos al cliente. Slo se permiten las instrucciones FETCH que asigna n valores a variables locales mediante la clusula INTO. Pgina 1

Geynen Rossler Montenegro Cochas

Instrucciones de control de flujo excepto instrucciones TRY...CATCH. Instrucciones SELECT que contienen listas de seleccin con expresiones que asignan valores a las variables locales para la funcin . Instrucciones UPDATE, INSERT y DELETE que modifican las variables de tabla locales de la funcin. Instrucciones EXECUTE que llaman a un procedimiento almacenado extendido.

Especificar parmetros Una funcin definida por el usuario tiene de cero a varios parmetros de entrada y devuelve un valor escalar o una tabla. Una funcin puede tener un mximo de 1024 parmetros de entrada. Cuando un parmetro de la funcin tiene un valor predeterminado, debe especificarse la palabra clave DEFAULT al llamar a la fun cin para poder obtener el valor predeterminado. Este comportamiento es diferente del de los parmetros con valores predeterminados de funciones definidas por el usuario, para las cuales omitir el parmetro implica especificar el valor predeterminado. Las funciones definidas por el usuario no admiten parmetros de salida. FUNCIONES DEFINIDAS POR EL USUARIO Son de dos tipos: Funciones Escalares. Funciones con valores de Tabla.

FUNCIONES ESCALARES Las funciones escalares definidas por el usuario devuelven un nico valor de datos del tipo definido en la clusula RETURNS. Las funciones escalares en lnea no tienen cuerpo; el valor escalar es el resultado de una sola instruccin. Para una funcin escalar de mltiples instrucciones, el cuerpo de la funcin, defini do en un bloque BEGIN...END, contiene una serie de instrucciones Transact -SQL que devuelven el valor nico. El tipo devuelto puede ser de cualquier tipo de datos excepto text, ntext, image, cursor y timestamp. Ejemplo: Create Function Suma(@N1 int, @N2 int ) RETURNS Int AS BEGIN Return (@N1 + @N2) END --Ejecutar Geynen Rossler Montenegro Cochas Pgina 2

Print dbo.Suma(5,8) FUNCIONES CON VALORES DE TABLA Las funciones con valores de tabla definidas por el usuario devuelven un tipo de datos table. Las funciones con valores de tabla en lnea no tiene n cuerpo; la tabla es el conjunto de resultados de una sola instruccin SELECT. FUNCIONES DEFINIDAS POR EL USUARIO EN LINEA. Ejemplo: Funcin que devuelve una tabla con la lista de productos suspendidos; el argumento ingresado puede ser 1 -Suspendido o 0-Activo. Create Function ProdSuspendido(@Sus int) Returns Table AS Return(Select * From Productos Where Suspendido=@Sus) --Ejecutar Select * From dbo.ProdSuspendido(1 ) FUNCIONES DEFINIDAS POR EL USUARIO CON VALORES DE TABLA.

Ejemplo: Crear una funcin que devuelva en formato de tabla el nombre completo de cada uno de los clientes que pertenecen a una determinada zona CREATE FUNCTION Nombre_Cliente_F ( @Zona int ) RETURNS @NombreCliente Table ( NombreCompleto Varchar(50) ) AS BEGIN Declare @Nombre Varchar(50) Insert Into @NombreCliente Select (Apellidos + ', ' + Nombre) From Cliente Where IdZona=@Zona RETURN END --Ejecutar SELECT * From Nombre_Cliente_F(2)

Geynen Rossler Montenegro Cochas

Pgina 3

BIBLIOGRAFIA Libros en pantalla de SQL Server 2005.

Geynen Rossler Montenegro Cochas

Pgina 4

You might also like