Criar uma Trigger - SQL Server

diog0silva

Power Member
Boas.

Tou a fazer uma base de dados em SQL Server e tou a querer fazer mais do que aquilo que sei, mas se alguém puder ajudar agradeço.

Quero criar uma trigger que, quando for adicionado um novo registo à tabela tab_atleta, automaticamente preencha o campo atl_escalao da tabela da seguinte forma:

if atl_datanasc < 1996 then
atl_escalao = "Juvenil"
else
atl_escalao = "Iniciado"

Não é bem assim a condição, mas se alguém conseguir fazer com esta condição eu depois desenrasco-me. É que eu não sei mesmo a sintaxe das triggers em SQL Server, sei alguma coisa de triggers mas em Oracle.

Cumprimentos,
Diogo Silva
 
Será qualquer coisa como:

CREATE TRIGGER auto_escalao
ON dbo.tab_atleta
AFTER Insert, Update
AS
...
if then else

Mas tipo, como é que se faz referência ao campo no SQL Server? No Oracle sei que é mais ou menos assim:

If :NEW.atl_datanasc < 01.01.1996 then
:NEW.atl_escalao = "Juvenil"
else
:NEW.atl_escalao = "Iniciado"

Alguém que ajude, preciso mesmo de fazer isto.

Obrigado.
 
Última edição:
Nos triggers podes saber o que foi inserido/modificado através de consultas à tabela "inserted".

Na condição "ON" tens de colocar a chave primária da tabela.

Código:
CREATE TRIGGER auto_escalao
ON dbo.tab_atleta
AFTER Insert, Update
AS

UPDATE dbo.tab_atleta
SET atl_escalao = CASE WHEN atl_datanasc < '19960101' THEN 'Juvenil' ELSE 'Iniciado' END
FROM dbo.tab_atleta A JOIN inserted B
ON A.ID = B.ID
 
Back
Topo