Treinamento SQL Server

Módulo 33 — Triggers: DML, DDL & LOGON

Auditoria, regras de negócio e governança — com responsabilidade.

T-SQL Nível Avançado Hands-on Atualizado: 28 ago 2025

1) Conceitos & Tipos

2) DML: AFTER & INSTEAD OF

CREATE TRIGGER trg_ins_audit ON dbo.Pedidos
AFTER INSERT AS
INSERT dbo.Auditoria (Acao,Quando,Qtde) SELECT 'INS',SYSDATETIME(),COUNT(*) FROM inserted;

3) DDL Triggers & EVENTDATA()

CREATE TRIGGER trg_ddl ON DATABASE FOR CREATE_TABLE, ALTER_TABLE AS
INSERT dbo.AuditDDL(Evento,Xml) VALUES (EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]','sysname'), EVENTDATA());

4) LOGON Triggers

CREATE TRIGGER trg_logon_block ON ALL SERVER FOR LOGON AS
IF ORIGINAL_LOGIN() LIKE 'sa' AND HOST_NAME() NOT LIKE 'SRV-%' ROLLBACK;

5) Recursão & Desempenho

6) Boas Práticas

7) Laboratório

-- Criar tabela de auditoria e testar DML/DDL triggers.

8) Exercícios

  1. Trigger INSTEAD OF para validar constraints complexas.

9) Gabarito

DISABLE TRIGGER trg_ins_audit ON dbo.Pedidos;

10) Riscos a Evitar

11) Próximos Passos