[英]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
inserted
或deleted
(或兩者都失敗),因為這些是偽表,可為您提供更改內容的詳細信息。
您想要類似的東西:
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.