如何在SQL Trigger中引用新插入的行

时间:2014-10-28 14:29:37

标签: tsql

我知道在plpgsql中如果想要引用新的插入行,可以使用“NEW”。 我怎么能在T-SQL(transact sql)中做到这一点?

以下是我尝试创建的触发器:

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'附近的语法不正确

感谢。

2 个答案:

答案 0 :(得分:0)

inserted and deleted pseudo tables

  

DML触发器语句使用两个特殊表:deleted表和inserted表。 SQL Server自动创建和管理这些表。您可以使用这些临时的内存驻留表来测试某些数据修改的效果,并为DML触发器操作设置条件。您无法直接修改表格中的数据

答案 1 :(得分:0)

在您的情况下,为什么不在alertid字段上使用自我增量的标识? 如果要在触发器中执行此操作,则需要从插入中选择主键,然后对规则表进行更新。