簡體   English   中英

SQL觸發器檢查以前的值

[英]SQL trigger to check previous value

我在表tblA上有一個觸發器,如果​​狀態closed它將向表tblB插入一條記錄。 下面的代碼正在工作,但是我希望僅在未closed先前狀態的情況下才執行它。 我該如何檢查?

ON tblA
AFTER UPDATE
AS
  BEGIN
    SET NOCOUNT ON
    INSERT INTO tblB 
        (a_id, action, usr)
        select a.ID, 'closed', a.usr
        from tblA a
    WHERE a.Status LIKE 'closed';  
    END

總是懷疑SQL Server中的觸發器是否無法訪問deleted inserteddeleted (或兩者都失敗),因為這些是偽表,可為您提供更改內容的詳細信息。

您想要類似的東西:

INSERT INTO tblB 
    (a_id, action, usr)
    select a.ID, 'closed', a.usr
    from inserted a
            inner join
         deleted d
            on a.ID = d.ID
WHERE a.Status = 'closed'
  AND d.Status != 'closed';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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