Você está na página 1de 3

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

FUNCIONES
Las funciones son rutinas que se utilizan para encapsular lgica que se realiza confrecuencia. En lugar de tener que repetir toda la lgica de la funcin, cualquier cdigoque deba realizar la lgica puede llamar a la funcin. Las funciones son rutinas que constan de una o ms instrucciones Transact-SQL quepueden utilizarse para encapsular cdigo con el fin de reutilizarlo. Una funcin tomacero o ms parmetros de entrada y devuelve un valor escalar o una tabla. Los parmetros de entrada pueden ser de cualquier tipo de datos excepto timestamp,cursor o table, pero las funciones no aceptan parmetros de salida.

F UNCIONES ESCALARES Las funciones escalares devuelven un nico valor de datos del tipo definido enuna clusula RETURNS. Estos tipos de funciones son muy similares sintcticamente a las funciones integradas del sistema como COUNT o MAX.
FUNCIONES CON VALORES DE TABLA EN LNEA Una funcin con valores de tabla en lnea devuelve una tabla que es elresultado de una nica instruccin SELECT. Es similar a una vista, pero ofrecems flexibilidad que las vistas porque puede proporcionar parmetros a lafuncin. FUNCIONES CON VALORES DE TABLA DE VARIAS INSTRUCCIONES Una funcin con valores de tabla de varias instrucciones devuelve una tablagenerada por una o varias instrucciones Transact-SQL y es similar a unprocedimiento almacenado. A diferencia de un procedimiento almacenado, sepuede hacer referencia a una funcin con valores de tabla de variasinstrucciones en la clusula FROM de una instruccin SELECT como si fuerauna vista o una tabla.

Sintaxis
Create Function <Nombre> (Parametro <Tipo>, Parametro <Tipo>)Returns Tipo_Dato As Begin <Operaciones> Return <Valor> End

Ejemplos:
--Funcion que Halla la Suma de Dos Numeros Create Function Suma(@N1 Int,@N2 Int) Returns Int As Begin Declare @Sum Int Set @Sum= @N1 + @N2 Return @Sum End Go Select Dbo.Suma (12,14)As Suma Go --Funcion que Permite Realizar Sacar la Utilidad --Que sera Igual a P_ven - P_Com Create Function Utilidades (@PVen Money,@Pcom Money,@Cant Int)Returns Money As Begin Declare @Uti Money Set @uti=(@Pcom-@Pven)*@Cant Return @Uti End Go Select Nom_Prod,Dbo.Utilidades(P_Ven,P_Com,Stock_Act)As Utilidad From Producto --Crear Una Funcion que me Permita crear el formato de Fecha --Al Formato de Fecha Larga Profesor: Walter Roman Parraga System Developer Pgina1

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only.

Alter Function Fecha_Larga (@Fec DateTime)Returns Varchar(70) As Begin Declare @Dia Int Declare @Mes Int Declare @Ao Int Declare @Ndia Varchar(50) Declare @Nmes Varchar(50) Set @Dia=Day(@Fec) Set @Mes=Month(@Fec) Set @Ao=Year(@Fec) If @Mes=1 Begin Set @Nmes='Enero' End If @Mes=2 Begin Set @Nmes='Febrero' End If @Mes=3 Begin Set @Nmes='Marzo' End If @Mes=4 Begin Set @Nmes='Abril' End If @Mes=5 Begin Set @Nmes='Mayo' End If @Mes=6 Begin Set @Nmes='Junio' End If @Mes=7 Begin Set @Nmes='Julio' End If @Mes=8 Begin Set @Nmes='Agosto' End If @Mes=9 Begin Set @Nmes='Setiembre' End If @Mes=10 Begin Set @Nmes='Octubre' End If @Mes=11 Begin Set @Nmes='Noviembre' End If @Mes=12 Begin Set @Nmes='Diciembre' End Profesor: Walter Roman Parraga System Developer Pgina2

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. Return Cast(@dia As Varchar(50)) + ' De ' + @Nmes + ' Del ' + Cast(@Ao As Varchar(10)) End Go Select Dbo.Fecha_Larga(F_Ing) AS Fecha From Producto Go --Funcion con Valores de Tabla Create Function Tabla_Empleado (@Dato Varchar(15)) Returns Table As Return (Select Nom_Emple,Ap_Pat,Ap_Mat From Empleado Where Cod_Emple=@Dato) Go

Control de errores , Uso del Try..Catch


El control de excepciones estructurado es una forma habitual de controlar excepciones en muchos lenguajes de programacin muy conocidos, como Microsoft Visual Basic, Visual C#. SQL Server 2008 le permite utilizar control de excepciones estructurado en cualquier situacin transaccional, como un procedimiento almacenado. Esto hace que el cdigo sea ms legible y ms fcil de mantener. Utilice bloques TRYCATCH para implementar control de excepciones estructurado. El bloque TRY contiene el cdigo transaccional que podra producir un error. El bloque CATCH contiene el cdigo que se ejecuta si se produce un error en el bloque TRY. Sintaxis: BEGIN TRY { instruccinSql | bloqueDeInstrucciones } END TRY BEGIN CATCH { instruccinSql | bloqueDeInstrucciones } END CATCH

Ejemplo:
CREATE TABLE dbo.TableWithKey (ColA int PRIMARY KEY, ColB int) GO CREATE PROCEDURE dbo.AddData @a int, @b int AS BEGIN TRY INSERT INTO TableWithKey VALUES (@a, @b) END TRY BEGIN CATCH SELECT ERROR_NUMBER() ErrorNumber, ERROR_MESSAGE() [Message] END CATCH GO EXEC dbo.AddData 1, 1 EXEC dbo.AddData 2, 2 --Viola La llave Primaria EXEC dbo.AddData 1, 3

Generar las Siguientes Funciones: 1.- Funcin que autogener el cdigo del producto al momento de insertar un nuevo producto. 2.- Funcin que permite ingresar una fecha y me devuelve el ao actual de un empleado. 3.-Funcion que permita calcular el tiempo que falte para que el producto expire o llegue a su fecha de vencimiento.
Profesor: Walter Roman Parraga System Developer Pgina3

Você também pode gostar