Oi,
Estou com problema na trigger abaixo:
Quando a diferença entre as datas for maior do que 50 não posso deixar gravar o registro.
Ao tentar inserir um registro na tabela, aparece a seguinte mensagem:
Msg 3609, Level 16, State 1, Line 1
The transaction ended in the trigger. The batch has been aborted.
O registro não é incluído.
quando a idade é menor que 50 esta tudo ok.
[code]
alter TRIGGER testa_idade ON cliente
INSTEAD OF
insert, update
AS
DECLARE @DATA DATETIME
DECLARE @ID INT
IF EXISTS (SELECT * FROM INSERTED)
BEGIN
SET @DATA = (SELECT data_nasc from inserted)
SET @ID = DATEDIFF ( YY, @DATAN, GETDATE() )
IF (@IDADE > 50 )
Begin
RAISERROR('Idade maior que 50 anos',16,1)
ROLLBACK
RETURN
END
else
begin
INSERT INTO cliente
SELECT * FROM INSERTED
end
END
GO
[/ccde]