晚上好。SQL:重复触发信息3609
我有任务创建触发器将由
insert into tbl(row1, row2)
values('val1', 'val2')
比较插入的记录所以我写了:
CREATE TRIGGER duplikat_miejsce ON miejsce
AFTER INSERT
AS
if exists (select * from miejsce i
inner join inserted t on i.ulica=t.ulica and i.numer=t.numer and i.miasto=t.miasto and i.kod=t.kod)
begin
RAISERROR ('Adres juz istnieje',1,2)
rollback
end
go
触发本身造成的。但它不能正常工作。它提供的消息:
住址一卷istnieje
消息50000,级别1,状态2
消息3609,级别16,状态1,行
在触发器中结束交易。该批次已被中止。
什么是最重要的,它给出了错误,当我不复制任何列的任何列。它否认插入任何记录我使用的表“miejsce”
Insert命令的尝试:
insert into miejsce(id_miejsce, ulica, numer, miasto, kod, telefon, uwagi)
values (6, 'Widmowa', '14', 'Warszawka', '88-800', null, null)
好吧,触发器是'AFTER INSERT',这意味着它在**插入后执行**。所以,当触发器执行时,你的'IF EXISTS'将总是返回true – Lamak