我想創建一個觸發器,當插入,刪除發生在表'Abschaetzung_has_Varianten'中時觸發,並更新一個名爲'Flag'的表。我需要從同一個表中選擇一個ID來更新標誌表。在編寫ID的SELECT時語法是否錯誤?我似乎沒有從選擇中獲得@abschID。任何人都可以幫助我。謝謝。更新在sql server中寫入的觸發器中的表
CREATE TRIGGER trig_update_flag on [Abschaetzung_has_Varianten]
after insert, delete
As
Begin
DECLARE @x INT;
DECLARE @abschID INT;
DECLARE @value INT;
SELECT @value = 1;
SELECT @abschID = (SELECT TOP 1 Abschaetzung_ID FROM Abschaetzung_has_Varianten ORDER BY Abschaetzung_ID DESC);
SELECT @x = Count(*) FROM Flag WHERE AbschaetzID = @abschID
If @x > 0
Begin
UPDATE Flag Set [Flag] = @value WHERE AbschaetzID = @abschID;
end
end
首先,您通常使用INSERTED,DELETED僞表,而不是原始表。其次這些表格可能有多個記錄,所以你需要編寫你的觸發器來允許。 – 2014-09-04 12:49:25