如何为SQL Server中的每一行创建触发器

时间:2015-06-22 10:36:57

标签: sql-server tsql triggers sql-server-2014

create table t1(col int);
create table t2(col int);


CREATE TRIGGER tr
ON t1
AFTER INSERT 
as
    begin
    INSERT INTO t2(col) values(1)
end;

-- tables and trigger created

INSERT INTO t1(col) values(1), (2)

当我运行此插入查询时,在表t2中,插入事件只发生一次。

触发器中需要FOR EACH ROW语句,但是如何在SQL Server中进行此操作?没有在文档中找到,在谷歌搜索后,也没有找到一些好的解决方案。

1 个答案:

答案 0 :(得分:1)

替换您的:INSERT INTO t2(col) values(1)

在:

INSERT INTO t2(col) SELECT col FROM inserted

因为在inserted表中,您会发现在触发器中链接的表中插入的所有行(t1)