14. desencadenadores

Upload: alexramirezlazaro

Post on 06-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 14. DESENCADENADORES

    1/3

    DISPARADORES O DESENCADENADORES (TRIGGERS)

    Son disparadores de procedimientos, una especie de procedimientos

    almacenados que se ejecutan cuando ocurre un evento sobre alguna tabla.

    Un evento es una acción como: Inserción (INSERT), borrado (DELETE),

    actualización (UPDATE).

    Los desencadenadores pueden ayudar a mantener la integridad de referencia

    de los datos conservando la consistencia entre los datos relacionados de

    distintas tablas.

    Los desencadenadores son útiles porque:

    Pueden realizar cambios en cascada a lo largo de las tablas

    relacionadas de la base de datos.

    Pueden no permitir o revertir los cambios que violen la integridad de

    referencia, cancelando la transacción de modificación de datos

    intentada.

    Pueden imponer restricciones de mucha mayor complejidad que las

    definidas con las reglas.

    Pueden llevar a cabo análisis de hipótesis sencillos. Por ejemplo puede

    comparar el estado de una tabla antes y después de una modificación

    de datos.

    CREACION DE DESENCADENADORES

    Cuando se crea un desencadenador, se especifica la tabla y los comandos de

    modificación de datos que deben disparar o activarlo. Luego se indica la acción

    o acciones que debe llevar a cabo el desencadenador.

    La sintaxis para la creación de triggers es la siguiente:

      Ing. Ana Doris M. Barrera Loza

     

  • 8/18/2019 14. DESENCADENADORES

    2/3

    CREATE TRIGGER Nombre ON tabla FOR accion AS codigo

    EJEMPLO:

    Crear un trigger que muestre un mensaje cada vez que se inserta un nuevo

    registro en la tabla Territories.

    CREATE TRIGGER InsertTerr ON Territories FOR Insert AS

    print 'Registro ingresado con éxito'

    Para comprobar el funcionamiento del trigger, insertar un nuevo registro en la

    tabla Territories

    INSERT INTO Territories

    Vales !'"#$%&''(oston' ')'*

    Si queremos borrar el trigger anterior, ejecutar el siguiente código:

    +RO, TRIGGER InsertTerr

    Si queremos modificar el trigger anterior, ejecutar el siguiente código:

    A-TER TRIGGER InsertTerr

    INSTRUCCIONES SQL NO PERMITIDAS EN LOS DESENCADENADORES

     Todos los comandos create.

     Todos los comandos drop.

     Alter table y alter database.

    RESTRICCIONES DE LOS DESENCADENADORES

    Una tabla puede tener un máximo de 3 desencadenadores: uno de

    actualización, uno de inserción y uno de eliminación.

      Ing. Ana Doris M. Barrera Loza

     

  • 8/18/2019 14. DESENCADENADORES

    3/3

    Cada desencadenador puede aplicarse a una sola tabla.

    No se puede crear un desencadenador en una vista ni en una tabla

    temporal, aunque los desencadenadores pueden hacer referencia a las

     vistas o tablas temporales.

    Los desencadenadores no se permiten en las tablas del sistema, aunque

    no aparezca un mensaje de error si se crea en una tabla del sistema, el

    desencadenador no se utilizará.

      Ing. Ana Doris M. Barrera Loza