Welcome to Sign in | Help

Data Definition Language (DDL) Triggers

  •  10-03-2006, 2:11 PM

    Data Definition Language (DDL) Triggers

    Data Definition Language (DDL) Triggers

     

    Un DDL trigger (declansator) este activat de instructiuni tip CREATE, ALTER sau DROP atat la nivelul serverului cat si al unei baze de date. Poate fi folosit pentru monitorizare modificarilor intr-o baza de date, blocarea anumitor schimbari sau chiar mentinerea unor standarde de cod in definirea obiectelor. Momentan un DDL trigger este activat doar dupa executia instructiunii DDL – varianta INSTEAD OF (activare in loc de executia instructiunii DDL) nefiind prezenta in versiunea curenta a SQL Server 2005. Functia EVENTDATA poate fi folosita pentru a obtine textul complet al instructiunii executate.

     

    Exemplu:

    -- blocheaza instructiunea DROP TABLE

    -- la nivelul bazei de date curente

    CREATE TRIGGER drop_table_trigger ON DATABASE

    FOR DROP_TABLE

    AS

       PRINT 'Operatie interzisa!'

       ROLLBACK

     

     

    Observatii:

    1. In cazul in care folositi DDL triggers pentru audit, puteti folosi pentru acelasi scop si Notificari de Evenimente (Event Notifications). Diferenta consta in modul de lucru: sincron pentru un DDL trigger si respectiv asincron pentru notificari.
    2. DDL triggers nu functioneaza pentru anumite proceduri sistem ca de exemplu sp_rename.

     


    Cristian Andrei Lefter, SQL Server MVP
    MCT, MCSA, MCDBA, MCAD, MCSD .NET,
    MCTS, MCITP - Database Administrator SQL Server 2005
    http://sqlserver.ro
    Filed under:
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems