Вы находитесь на странице: 1из 4

16-11-2016 Triggers

Jonathan David Medina Gomez


Miguel ngel Rodrguez Reyes
Grupo: A
Base de Datos 2
Qu son los Triggers
Un desencadenador es una clase especial de procedimiento almacenado que se
ejecuta automticamente cuando se produce un evento en el servidor de bases de
datos. Los desencadenadores DML se ejecutan cuando un usuario intenta modificar
datos mediante un evento de lenguaje de manipulacin de datos (DML). Estos
desencadenadores se activan cuando se desencadena cualquier evento vlido, con
independencia de que las filas de la tabla se vean o no afectadas. Para obtener ms
informacin, consulte.
Los desencadenadores DDL se ejecutan como respuesta a diversos eventos del
lenguaje de definicin de datos (DDL). Estos eventos corresponden principalmente
a instrucciones CREATE, ALTER y DROP de Transact-SQL, y a determinados
procedimientos almacenados del sistema que ejecutan operaciones de tipo DDL.
Los desencadenadores logon se activan en respuesta al evento LOGON que se
genera cuando se establece la sesin de un usuario. Los desencadenadores
pueden crearse directamente a partir de instrucciones de Transact-SQL o de
mtodos de ensamblados creados en Common Language Runtime (CLR) de
Microsoft .NET Framework y cargados en una instancia de SQL Server. SQL Server
permite crear varios desencadenadores para cualquier instruccin especfica.

Tipos de triggers (DDL y DML) propsitos


DDL
Los desencadenadores DDL pueden utilizarse para tareas administrativas como
auditar y regular las operaciones de base de datos.
Utilice los desencadenadores DDL cuando:
Desee evitar determinados cambios en el esquema de base de datos.
Desee que ocurra algn evento en la base de datos como respuesta a un
cambio realizado en el esquema de base de datos.
Desee registrar cambios o eventos del esquema de base de datos.
Los desencadenadores DDL slo se activan cuando se ejecutan las instrucciones
DDL que los desencadenan. Los desencadenadores DDL no se pueden utilizar
como desencadenadores INSTEAD OF.

DML
Los desencadenadores DML pueden usarse para aplicar reglas de negocios y la
integridad de datos, consultar otras tablas e incluir instrucciones Transact-SQL
complejas. El desencadenador y la instruccin que lo activa se tratan como una sola
transaccin, que puede revertirse desde el desencadenador. Si se detecta un error
grave (por ejemplo, no hay suficiente espacio en disco), se revierte
automticamente toda la transaccin.
Triggers DML (momentos de ejecucin)
Los desencadenadores DML constituyen un tipo especial de procedimiento
almacenado que se inicia automticamente cuando tiene lugar un evento de
lenguaje de manipulacin de datos (DML). Los eventos DML son instrucciones
INSERT, UPDATE o DELETE de una tabla o vista.

Sintaxis de creacin, borrado y actualizado de Triggers DML.


CREATE TRIGGER [ schema_name . ]trigger_name
ON { table | view }
[ WITH <dml_trigger_option> [ ,...n ] ]
{ FOR | AFTER | INSTEAD OF }
{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WITH APPEND ]
[ NOT FOR REPLICATION ]
AS { sql_statement [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }

<dml_trigger_option> ::=
[ ENCRYPTION ]
[ EXECUTE AS Clause ]

<method_specifier> ::=
assembly_name.class_name.method_name
create trigger bit_carr_upd on carrera
after update as
declare @nuevo varchar(50),@anterior varchar (50)
select @nuevo = nom_carrera from inserted
select @anterior = nom_carrera from deleted
insert bitacora
(host,usuario,operacion,modificado,tabla,anterior,nuevo)
values
(HOST_NAME(),
system_user,
'Actualizar',GETDATE(),'CARRERA',@anterior,@nuevo);

select * from carrera


insert into carrera values (1,'tic',1)

update carrera set nom_carrera='ITIC' where clave_carrera=1;


select * from bitacora;

Вам также может понравиться