Como criar uma DDL Trigger no SQL Server 2005

Essa dica mostra como podemos criar uma DDL (Data Definition Language) Trigger no SQL Server 2005, para monitorar eventos de create, alter, drop, grant, deny, revoke ou update statistics

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

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados