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

Sesin12 TRANSACTIONSQLSERVER

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

3. En la barra de herramientas, haga clic en el botn Execute


4. Cuando el comando haya finalizado correctamente, verificamos en el explorador de
objetos la creacin de las tablas dbo.Employee y dbo.AuditEmployee. Expanda
Databases, AdventureWorks, Tables. Si no aparecen, hacemos clic derecho sobre
Tables y seleccionamos Refresh
5. En la ventana de nueva consulta en blanco, escriba y ejecute el siguiente cdigo de Transact-
SQL:


6. Cuando el comando haya finalizado correctamente, haga clic con el botn derecho del
mouse en la carpeta Triggers del Explorador de objetos y, a continuacin, haga clic en
Refresh para comprobar que se ha creado el disparador triAudit
7. Inserte cuatro registros en la tabla dbo.Employee

8. Actualice el nombre del empleado de cdigo 2 con el siguiente valor: Mario Perea


Sesin12 TRANSACTIONSQLSERVER

4 Ing.LeticiaMarisolLauraOchoa

9. Elimine el registro del empleado de cdigo 1



10. Revise el contenido de las tablas dbo.Employee y dbo.AuditEmployee


Crear un disparador 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:


3. En la barra de herramientas, haga clic en el botn Execute
4. Cuando el comando haya finalizado correctamente, verificamos en el explorador de objetos la
creacin de la tabla HumanResources.JobCandidateHistory. Expanda Databases,
AdventureWorks, Tables. Si no aparecen, hacemos clic derecho sobre Tables y seleccionamos
Refresh.
5. En la ventana de nueva consulta en blanco, escriba y ejecute el siguiente cdigo de Transact-
SQL:

6. Cuando el comando haya finalizado correctamente, haga clic con el botn derecho del mouse en
la carpeta Triggers del Explorador de objetos y, a continuacin, haga clic en Refresh para
comprobar que se ha creado el disparador dJobCandidate.
7. En la tabla HumanResources.JobCandidate, elimine el registro que tenga el menor
JobCandidateID.


Sesin12 TRANSACTIONSQLSERVER

5 Ing.LeticiaMarisolLauraOchoa

8. Revise el contenido de la tabla HumanResources.JobCandidateHistory.




Notas adicionales:
DECLARE @l ocal _var i abl e Permite declarar variables variables dentro de un proceso por lotes
o procedimiento con la instruccin DECLARE, y se les asignan valores con una instruccin SET o
SELECT. @local_variable es el nombre de la variable. Los nombres de variables deben comenzar con
un signo de arroba (@).

@@TRANCOUNT Funcin que devuelve el nmero de las transacciones activas de la conexin actual.
SET NOCOUNT ON Evita que se devuelva el mensaje que muestra el recuento del nmero de filas
afectadas por una instruccin o un procedimiento almacenado de Transact-SQL como parte del
conjunto de resultados.

V. EJERCICIOS

Utilizando la BD PRESUPUESTO en SQL Server, realice los siguientes ejercicios:

1. Cree un trigger de auditora para la tabla PRESUP_DET, que almacene en una tabla
denominada AUDIT_PRESUP_DET las operaciones INSERT, UPDATE y DELETE,
nombre del usuario y fecha en que se producen.
2. Cree un trigger para la tabla EMPRESAS que permita guardar en una tabla
EmpresasHistorial, todas las eliminaciones hechas en la tabla. Debe crear la tabla
EmpresasHistorial.
3. Cree un trigger para la tabla PRESUP_CAB de tal forma que al modificar un registro
emita un mensaje de error si el monto ejecutado es mayor al monto presupuestado.
4. Cree un trigger para la tabla PRESUP_CAB de tal forma que al insertar o modificar un
registro emita un mensaje de error si el ao de ejercicio es mayor al ao de la fecha
actual.

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

  • Fundamentos de La POO
    Fundamentos de La POO
    Документ5 страниц
    Fundamentos de La POO
    Casandro Heir
    Оценок пока нет
  • 9 Clase Captura de Los Requisitosa 9 10 1201459225892401 5
    9 Clase Captura de Los Requisitosa 9 10 1201459225892401 5
    Документ71 страница
    9 Clase Captura de Los Requisitosa 9 10 1201459225892401 5
    Jose Humberto Hurtado
    Оценок пока нет
  • SC11 3006 00
    SC11 3006 00
    Документ626 страниц
    SC11 3006 00
    Ed Sa
    Оценок пока нет
  • Decodificador Multiplexor
    Decodificador Multiplexor
    Документ4 страницы
    Decodificador Multiplexor
    Jorge El Tacha Ireta
    Оценок пока нет
  • 11.1 Presentaciones PDF
    11.1 Presentaciones PDF
    Документ26 страниц
    11.1 Presentaciones PDF
    Cristhian Andres Ramirez Martinez
    Оценок пока нет
  • Sonidospic
    Sonidospic
    Документ9 страниц
    Sonidospic
    Mateo Quispe
    Оценок пока нет
  • Taller 1 Informatica 10°02 2019
    Taller 1 Informatica 10°02 2019
    Документ11 страниц
    Taller 1 Informatica 10°02 2019
    GeinerLuis
    Оценок пока нет
  • Algoritmos y Programacion
    Algoritmos y Programacion
    Документ10 страниц
    Algoritmos y Programacion
    tesaryu
    Оценок пока нет
  • Deda U1 A1 Jusq
    Deda U1 A1 Jusq
    Документ7 страниц
    Deda U1 A1 Jusq
    citizen671906
    Оценок пока нет
  • Comandos Shell para Windows y Linux
    Comandos Shell para Windows y Linux
    Документ19 страниц
    Comandos Shell para Windows y Linux
    MICHAEL
    Оценок пока нет
  • SRS Car Rental
    SRS Car Rental
    Документ14 страниц
    SRS Car Rental
    Carla Gomez
    Оценок пока нет
  • Portafolio Final
    Portafolio Final
    Документ48 страниц
    Portafolio Final
    Chevezchaly Solano
    Оценок пока нет
  • Robotino Programacion
    Robotino Programacion
    Документ15 страниц
    Robotino Programacion
    Arnan N. Michel
    Оценок пока нет
  • Cuaderno de Trabajo HTML
    Cuaderno de Trabajo HTML
    Документ132 страницы
    Cuaderno de Trabajo HTML
    Sergio Sanchez
    83% (6)
  • Programación Orientada A Objetos
    Programación Orientada A Objetos
    Документ9 страниц
    Programación Orientada A Objetos
    edward
    Оценок пока нет
  • Embodied Interaction
    Embodied Interaction
    Документ3 страницы
    Embodied Interaction
    Criis Cherry
    Оценок пока нет
  • Tipos de Fallas Del Hardware
    Tipos de Fallas Del Hardware
    Документ9 страниц
    Tipos de Fallas Del Hardware
    Fatima Pereira
    Оценок пока нет
  • Base de Datos-Luis Alejandro Rojas
    Base de Datos-Luis Alejandro Rojas
    Документ13 страниц
    Base de Datos-Luis Alejandro Rojas
    Jeffrey Molina
    Оценок пока нет
  • Cuestionario Teoria de La Compu
    Cuestionario Teoria de La Compu
    Документ3 страницы
    Cuestionario Teoria de La Compu
    Alejandro Vargas
    Оценок пока нет
  • Speed Up
    Speed Up
    Документ2 страницы
    Speed Up
    Edwin Paul
    Оценок пока нет
  • PHPSimplex
    PHPSimplex
    Документ4 страницы
    PHPSimplex
    Joseph Huisacayna Sana
    Оценок пока нет
  • C (Autoguardado)
    C (Autoguardado)
    Документ2 страницы
    C (Autoguardado)
    Maicol Gordillo
    Оценок пока нет
  • SPA - AC19 Training Series Vol.5
    SPA - AC19 Training Series Vol.5
    Документ247 страниц
    SPA - AC19 Training Series Vol.5
    Lazaro Tabio Llanes
    Оценок пока нет
  • Dossier Sketchup
    Dossier Sketchup
    Документ3 страницы
    Dossier Sketchup
    vergadeburro
    Оценок пока нет
  • Los Tipos de PLC - Techlandia
    Los Tipos de PLC - Techlandia
    Документ3 страницы
    Los Tipos de PLC - Techlandia
    Mariangela Padilla Gonzalez
    Оценок пока нет
  • 21 Crear Carpetas
    21 Crear Carpetas
    Документ17 страниц
    21 Crear Carpetas
    Ingivan8806
    Оценок пока нет
  • SO 16-32-64 Bits
    SO 16-32-64 Bits
    Документ4 страницы
    SO 16-32-64 Bits
    Luis Alberto Machuca Alvarez
    Оценок пока нет
  • XD Bit
    XD Bit
    Документ2 страницы
    XD Bit
    Nahum Santos
    Оценок пока нет
  • Programas Conectar Igualdad
    Programas Conectar Igualdad
    Документ4 страницы
    Programas Conectar Igualdad
    Ale Pergro
    Оценок пока нет
  • Parcial 1 - Cloud Computing
    Parcial 1 - Cloud Computing
    Документ7 страниц
    Parcial 1 - Cloud Computing
    Daniela Almanza Gonzalez
    Оценок пока нет