Como criar uma DDL Trigger no SQL Server 2005
Uma DDL Trigger responde aos comandos:
- CREATE, ALTER ou DROP - para objetos do SQL Server como DATABASE, TABLE, FUNCTION, PROCEDURE, VIEW, etc;
- GRANT, DENY ou REVOKE - para atribuições de permissão de acesso;
- UPDATE STATISTICS - nas atualizações de estatísticas.
Um exemplo de criação de uma DLL trigger que crie um log a cada manutenção feita numa tabela é:
CREATE DATABASE EXEMPLO_TRIGGER
GO
–
USE EXEMPLO_TRIGGER
–
CREATE TABLE LOG
(
MAQUINA SYSNAME DEFAULT HOST_NAME(),
DADOS XML
)
–
CREATE TRIGGER DDL_VIGIA_TABLE
ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS
INSERT INTO LOG(DADOS) VALUES (EVENTDATA())
GO
–
CREATE TABLE PESSOA
(
COD INT IDENTITY, NOME VARCHAR(50)
)
–
SELECT * FROM LOG
–
ALTER TABLE PESSOA ADD PRIMARY KEY ( COD )
–
SELECT * FROM LOG
–
DROP TABLE PESSOA
–
SELECT * FROM LOG