Sie sind auf Seite 1von 10

Procedimientos Almacenados

&
Disparadores

Procedimiento almacenado

Un procedimiento almacenado es un objeto


perteneciente a una base de datos, que
contiene un conjunto de instrucciones SQL,
tanto de consulta, como de manipulacin de
datos, como de control de la secuencia del
programa, asociados a un nombre, y que son
ejecutados en conjunto

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

Das könnte Ihnen auch gefallen