FUNCIONES SQL - nbsp;· Geynen Rossler Montenegro Cochas Página 1 FUNCIONES SQL SQL Server nos proporciona los siguientes tipos de funciones: ð•Funciones Integradas

  • Published on
    30-Jan-2018

  • View
    215

  • Download
    0

Transcript

  • Geynen Rossler Montenegro Cochas Pgina 1

    FUNCIONES SQL

    SQL Server nos proporciona los siguientes tipos de funciones: Funciones Integradas Funciones definidas por el Usuario

    FUNCIONES INTEGRADAS (Funciones del Sistema)

    SQL Server proporciona las funciones integradas para ayudarle a realizar diver sasoperaciones. No se pueden modificar. Puede utilizar funciones integradas eninstrucciones Transact-SQL para:

    Tener acceso a informacin de las tablas del sistema de SQL Server sin teneracceso 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 ejecutcorrectamente. Si la instruccin gener un error, @@ERROR devuelve el nmero deerror. Y la funcin SUM(parameter) devuelve la suma de todos los valores delparmetro. Para obtener ms informacin acerca de las funciones integradas, vea Usarlas funciones del sistema.

    FUNCIONES DEFINIDAS POR EL USUARIO

    Las funciones definidas por el usuario se crean con la instruccin CREATEFUNCTION, se modifican con la instruccin ALTER FUNCTION y se quitan con lainstruccin DROP FUNCTION. Los nombres completos de las funciones definidas porel 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 cursoresde datos locales de la funcin.

    La asignacin de valores a objetos locales de la funcin, como la utilizacin deSET para asignar valores a variables locales escalares y de tabla.

    Las operaciones de cursores que hacen referencia a cursores locales que estndeclarados, abiertos, cerrados y no asignados en la funcin. No se admiten lasinstrucciones FETCH que devuelven datos al cliente. Slo se permiten lasinstrucciones FETCH que asigna n valores a variables locales mediante la clusulaINTO.

    @ERROR@ERROR

  • Geynen Rossler Montenegro Cochas Pgina 2

    Instrucciones de control de flujo excepto instrucciones TRY...CATCH.

    Instrucciones SELECT que contienen listas de seleccin con expresiones queasignan valores a las variables locales para la funcin .

    Instrucciones UPDATE, INSERT y DELETE que modifican las variables detabla 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 ydevuelve un valor escalar o una tabla. Una funcin puede tener un mximo de 1024parmetros de entrada. Cuando un parmetro de la funcin tiene un valorpredeterminado, debe especificarse la palabra clave DEFAULT al llamar a la fun cinpara poder obtener el valor predeterminado. Este comportamiento es diferente del de losparmetros con valores predeterminados de funciones definidas por el usuario, para lascuales omitir el parmetro implica especificar el valor predeterminado. Las funcionesdefinidas 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 deltipo definido en la clusula RETURNS. Las funciones escalares en lnea no tienencuerpo; el valor escalar es el resultado de una sola instruccin. Para una funcin escalarde mltiples instrucciones, el cuerpo de la funcin, defini do en un bloqueBEGIN...END, contiene una serie de instrucciones Transact -SQL que devuelven elvalor 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 IntASBEGIN

    Return (@N1 + @N2)END

    --Ejecutar

    @N1@N2@N1@N2

  • Geynen Rossler Montenegro Cochas Pgina 3

    Print dbo.Suma(5,8)

    FUNCIONES CON VALORES DE TABLA

    Las funciones con valores de tabla definidas por el usuario devuelven un tipo de datostable. Las funciones con valores de tabla en lnea no tiene n cuerpo; la tabla es elconjunto 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; elargumento ingresado puede ser 1 -Suspendido o 0-Activo.

    Create Function ProdSuspendido(@Sus int)Returns TableAS

    Return(Select * From Productos Where Suspendido=@Sus)

    --EjecutarSelect * 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 decada uno de los clientes que pertenecen a una determinada zona

    CREATE FUNCTION Nombre_Cliente_F(@Zona int)RETURNS @NombreCliente Table(NombreCompleto Varchar(50))ASBEGIN

    Declare @Nombre Varchar(50)

    Insert Into @NombreClienteSelect (Apellidos + ', ' + Nombre)From ClienteWhere IdZona=@Zona

    RETURNEND

    --EjecutarSELECT * From Nombre_Cliente_F(2)

    @Sus@Sus@Zona@NombreCliente@Nombre@NombreCliente@Zona

  • Geynen Rossler Montenegro Cochas Pgina 4

    BIBLIOGRAFIA

    Libros en pantalla de SQL Server 2005.