Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 Ing.LeticiaMarisolLauraOchoa
Disparadores DML
I. OBJETIVOS
Definir los disparadores DML
Crear disparadores INSERT, DELETE, UPDATE e INSTEAD OF
II. TEMAS A TRATAR
Disparadores
Creacin de disparadores
Tipos de disparadores
III. MARCO TERICO
1. DISPARADORES (TRIGGERS)
Los disparadores del Lenguaje de manipulacin de datos (DML) son una herramienta muy eficaz que
le permite exigir integridad de datos de dominio, de entidad y referencial.
Un desencadenador o disparador es un tipo especial de procedimiento almacenado que se ejecuta
cuando una instruccin INSERT, UPDATE o DELETE modifica los datos de una tabla especificada.
Un desencadenador puede consultar otras tablas y puede incluir instrucciones Transact-SQL
complejas. Los desencadenadores se crean normalmente para exigir integridad referencial o
coherencia entre datos relacionados de forma lgica en tablas diferentes. Puede utilizar
desencadenadores para exigir lgica de negocios compleja que sea difcil o imposible de exigir
mediante otros mecanismos de integridad de datos.
Tenga en cuenta lo siguiente acerca de los desencadenadores:
El desencadenador y la instruccin que lo activa se tratan como una nica transaccin, que se
puede deshacer desde dentro del desencadenador. Si se detecta un error grave (por ejemplo,
espacio insuficiente en el disco) se deshace automticamente toda la transaccin.
Los desencadenadores pueden realizar cambios en cascada en tablas relacionadas de la base
de datos; sin embargo, estos cambios se pueden ejecutar de manera ms eficiente mediante el
uso de restricciones de integridad referencial en cascada.
Los desencadenadores pueden proteger frente a operaciones de insercin, actualizacin y
eliminacin malintencionadas o incorrectas, y pueden exigir otras restricciones ms complejas
que las definidas mediante restricciones CHECK.
Los desencadenadores pueden hacer referencia a columnas de otras tablas, a diferencia de las
restricciones CHECK. Por ejemplo, un desencadenador puede utilizar una instruccin SELECT
de otra tabla para comparar con los datos insertados o actualizados y realizar acciones
adicionales, como modificar los datos o mostrar un mensaje de error definido por el usuario.
Los desencadenadores pueden evaluar el estado de una tabla antes y despus de una
modificacin de datos, y realizar acciones basndose en esa diferencia.
Varios desencadenadores del mismo tipo (INSERT, UPDATE o DELETE) en una tabla permiten
realizar distintas acciones como respuesta a la misma instruccin de modificacin.
S SE ES SI I N N
1
1
2
2
Sesin12 TRANSACTIONSQLSERVER
2 Ing.LeticiaMarisolLauraOchoa
2. CREACION DE DISPARADORES
Puede crear disparadores mediante la instruccin CREATE TRIGGER de Transact-SQL. La
instruccin CREATE TRIGGER tiene la siguiente sintaxis:
CREATE TRI GGER [ nombr eDeEsquema . ] nombr eDeDi spar ador
ON { t abl e | vi ew }
[ WI TH <opci nDi spar ador Dml > [ , . . . n ] ]
{ FOR | AFTER | I NSTEAD OF }
{ [ I NSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }
[ WI TH APPEND ]
[ NOT FOR REPLI CATI ON ]
AS { i nst r ucci nSql [ ; ] [ . . . n ] | EXTERNAL NAME
<especi f i cador DeMt odo
[ ; ] > }
3. TIPOS DE DISPARADORES
Hay dos categoras de disparadores DML:
Disparadores AFTER: Los disparadores AFTER se ejecutan despus de realizarse la accin de
la instruccin INSERT, UPDATE o DELETE. Especificar AFTER es igual que especificar FOR,
que es la nica opcin disponible en las versiones anteriores de Microsoft SQL Server. Slo
puede definir disparadores AFTER en tablas.
Disparadores INSTEAD OF: Los disparadores INSTEAD OF se ejecutan en lugar de la accin
de desencadenamiento habitual. Los desencadenadores INSTEAD OF tambin pueden definirse
en vistas con una o ms tablas base, donde pueden extender los tipos de actualizaciones que
una vista puede aceptar.
IV. ACTIVIDADES
Crear un disparador INSERT, UPDATE, DELETE
1. Haga clic en el botn New Query de la barra de herramientas
2. En la ventana de nueva consulta en blanco, escriba el siguiente cdigo de Transact-SQL:
Sesin12 TRANSACTIONSQLSERVER
3 Ing.LeticiaMarisolLauraOchoa
4 Ing.LeticiaMarisolLauraOchoa
5 Ing.LeticiaMarisolLauraOchoa