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中进行此操作?没有在文档中找到,在谷歌搜索后,也没有找到一些好的解决方案。
答案 0 :(得分:1)
替换您的:INSERT INTO t2(col) values(1)
在:
INSERT INTO t2(col) SELECT col FROM inserted
因为在inserted
表中,您会发现在触发器中链接的表中插入的所有行(t1)