Beruflich Dokumente
Kultur Dokumente
&
Disparadores
Procedimiento almacenado
Procedimiento almacenado
sintaxis
CREATE PROCEDURE
Nombre_del_procedimiento[Lista_de_parmetros]AS(Sentencias SQL)[RETURN
[Valor]]
Nombre_del_procedimiento
Identificador que determina el nombre asignado al procedimiento y que debe
cumplir con la regla de definicin de identificador es establecido en el motor de BD
Lista_de_parmetros
Parmetros definidos en el procedimiento con la siguiente sintaxis:
@nombre_var Tipo_var [OUTPUT]
Sentencias_SQL
Como se explic anteriormente, el cuerpo del procedimiento puede estar compuesto
de cualquier tipo de instruccin SQL
RETURN [Valor]
Un procedimiento almacenado puede devolver un valor de retorno de tipo integer ,
no nulo, que puede ser rescatado por el cdigo llamador para tener conocimiento
del resultado del proceso de dicho procedimiento. Los valores -1 al -99 estn
reservados por el sistema, as como el 0 que se interpreta como finalizado con
xito
Procedimiento almacenado
ejemplo
Definition
CREATE PROCEDURE prod_1
AS
SELECT * FROM CLIENTES
Ejecucin
EXECUTE prod_1
Procedimiento almacenado
ejemplo
Definition
CREATE PROCEDURE prod_2
@p_CodIniCHAR (6),
@p_CodFinCHAR (6)
AS
SELECT *
FROM CLIENTE
WHERE IDCLIENTE BETWEEN @p_CodIni AND @p_CodFin
Ejecucin
EXECUTE prod_2 000100, 000500
Procedimiento almacenado
ejemplo
Definition
CREATE PROCEDURE prod_3
@p_CodTipProdCHAR (3),
@p_NumProductos SMALLINT OUTPUT
AS
SELECT @p_NumProductos = COUNT(*)
FROM PRODUCTOS
WHERE IDTIPROD = @p_CodTipProd
Ejecucin
DECLARE @p_parmsal SMALLINT
EXECUTE prod_3 KBD, @p_parmsal OUTPUT
Procedimiento almacenado
ejemplo
Definition
CREATE PROCEDURE prod_4
AS
INSERT TIPSOPPRU
SELECT *
FROM TIPSOPORTE
RETURN @@ROWCOUNT
Ejecucin
DECLARE @p_retorno INTEGER
EXECUTE @p_retorno = prod_4
Disparadores
Un trigger es un tipo especial de procedimiento
almacenado que se ejecuta automticamente al
intentarse efectuar una modificacin de los datos,
en la tabla a la que se encuentran asociados.
Las operaciones que pueden disparar un trigger
son las correspondientes a las instrucciones SQL
INSERT
UPDATE
DELETE
Disparadores sintaxis
CREATE TRIGGER Nombre_del_Trigger
ON Nombre_de_la_tabla
FOR {INSERT,UPDATE,DELETE}
AS (Sentecias_SQL)
Nombre_del_Trigger
Identificador que determina el nombre del trigger en la base de datos y que debe
cumplir las reglas de construccin de identificadores en SQL Server.
Nombre_de_la_tabla
Nombre de la tabla sobre la que ser ejecutado el trigger, encaso de ser sta
alterada, en cuanto a datos se refiere.
INSERT
Instruccin de insercin de filas.
UPDATE
Instruccin de actualizacin de filas.
DELETE
Instruccin de eliminacin de filas.
Sentencias_SQL
Cualquier tipo de sentencia SQL
Disparadores ejemplo
CREATE TRIGGER Trig_1
ON CPOSTAL
FOR DELETE
AS
DECLARE @p_cuentaSMALLINT
SELECT @p_cuenta = COUNT(*)
FROM CLIENTES CLI
WHERE CLI.IDPROVIN = CPOSTAL.IDPROVIN
AND CLI.RESTCDPOSTAL = CPOSTAL.RESTCDPOSTAL
IF @p_cuenta > 1
BEGIN
ROLLBACK TRANSACTION
RAISERROR(ESTA FILA CONTIENE REFERENCIAS EN TABLA
CLIENTES,16,-1)
END