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:
- 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.
- 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