2014-10-28 41 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字段的身份? 如果您想在触发器中执行此操作,您需要从插入中选择主键,然后在规则表上进行更新。