Inicio > Transact-SQL > Desencadenadores en sql server , TRIGGER (Transact-SQL)

Desencadenadores en sql server , TRIGGER (Transact-SQL)


En las tablas y vistas pueden ejecutarse 3 operaciones, aparte de la selección de datos (INSERT, DELETE, UPDATE) cada una de estas puede lanzar una o mas desencadenadores.

Se dispone de 2 tipos de desencadenadores AFTER y INSTEAD OF. El primer tipo es posible asociar varios a cada acción del desencadenante , mientras que el segundo solo puede existir para cada acción y tabla.

Los desencadenadores INSTEAD OF se evita que la acción desencadenadora se ejecute, transfiriéndose el control en su lugar al codgio desencadenador. Otra ventaja de estos desencadenadores INSTEAD OF, permiten codificar la lógica para rechazar partes de un lote y,  al mismo tiempo,  aceptar otras partes del mismo.

Dejo aquí 2 ejemplos un de INSERT, y otro de DELETE

— =============================================
— Author:  Ricardo A. Huaman Suarez
— Create date: 12 12 2009
— Description: Crear un registro en ConfiguracionVoz cuando se crea un usuario
— =============================================
ALTER TRIGGER [TRCrearConfiguracionVoz] ON [dbo].[Usuarios]
FOR INSERT
AS
BEGIN

— Evita que se devuelva el mensaje que muestra el recuento del número de filas afectadas
SET NOCOUNT ON;
DECLARE @Id_Usuario INT;
SELECT @Id_Usuario = (SELECT Id_Usuario FROM Inserted)
INSERT INTO ConfiguracionVoz (Id_Usuario,Voz,Velocidad,Volumen)
VALUES (@Id_Usuario,”,0,100)

END

— =============================================
— Author:  Ricardo A. Huaman Suarez
— Create date: 12 12 2009
— Description: Eliminacion del registro en ConfiguracionVoz cuaNdo se elimina un usuario
— =============================================
ALTER TRIGGER [TREliminarConfiguracionVoz] ON [dbo].[Usuarios]
FOR DELETE
AS
BEGIN
— Evita que se devuelva el mensaje que muestra el recuento del número de filas afectadas
SET NOCOUNT ON;

DELETE ConfiguracionVoz
FROM ConfiguracionVoz, Deleted
WHERE ConfiguracionVoz.Id_Usuario = Deleted.Id_Usuario

END

Categorías:Transact-SQL
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: