簡體   English   中英

為什么觸發器沒有在表中插入新值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM