晚上好。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