如何在TSQL触发器中引用新插入的行

如何在TSQL触发器中引用新插入的行,tsql,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 我收到错

我知道在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”附近的语法不正确

谢谢。

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


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

可能重复的