2014-10-28 44 views
-1

我知道,在PLPGSQL如果一個人將要引用新插入的行,你可以使用「NEW」。 如何在T-SQL(transact sql)中執行此操作?如何引用新插入行中TSQL觸發

以下是我試圖創建觸發器:

CREATE Trigger setAlertId on rules_table 
FOR INSERT AS 
DECLARE @max_id integer 
SELECT @max_id = (select max(AlertId) from rules_table) 
NEW.AlertId = @max_id+1 
END 
GO 

我得到的錯誤信息:

附近的 'NEW'

由於不正確的語法。

+0

[上插入件和如何引用所插入數據的SQL Server觸發器](http://stackoverflow.com/questions/4404219/sql-server-trigger-on-insert-and-how-to的可能重複-reference最數據 - 即-被插入) – LittleBobbyTables 2014-10-28 14:37:14

回答

0

inserted and deleted pseudo tables

DML觸發器語句使用兩種特殊的表:deleted表和inserted表。 SQL Server自動創建和管理這些表。您可以使用這些臨時的內存駐留表來測試某些數據修改的影響,併爲DML觸發器操作設置條件。你不能直接修改表中的數據

0

在你的情況下,爲什麼你不使用增加自身的alertid字段的身份? 如果您想在觸發器中執行此操作,您需要從插入中選擇主鍵,然後在規則表上進行更新。