[英]Why the trigger is not inserting new values to the table?
我有這個觸發器來檢查插入語句條件。 它顯示正確的消息,但不添加值(盡管它顯示“已成功添加”消息)。 誰知道是問題所在?
CREATE TRIGGER trg_SentMessage_Insteadof
ON messages
INSTEAD OF INSERT
AS
BEGIN
IF (EXISTS (SELECT inserted.*
FROM inserted
LEFT OUTER JOIN matchs AS m ON (inserted.sentFrom = m.userID1
AND inserted.sentTo = m.userID2)
OR (inserted.sentFrom = m.userID2
AND inserted.sentTo = m.userID1)
WHERE (m.interesting1 = 0 AND m.interesting2 = 0)))
PRINT 'Succesfully added'
ELSE
BEGIN
ROLLBACK TRANSACTION
PRINT 'You can't do that!'
END
END
例如,當我運行時:
insert into messages values('2017-05-01', 'how are you', '426564774', '201827364')
應該返回“成功添加”,並將其添加到表中,但僅顯示該消息。
您實際上並沒有插入任何值。 INSTEAD OF INSERT
防止發生插入,因此在檢查條件之后,必須在打印語句之前自行插入它們。 像https://stackoverflow.com/a/27659693/6715484之類的東西
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.