插入所有记录后如何触发触发器?

时间:2017-09-23 13:42:33

标签: sql sql-server

在SQL server中,触发器什么时候被触发?

问题是,我有一个表格,其中将插入45,000条记录。 我想将所有45k记录复制到其他表中。 但我不希望触发器在每个插件上运行,即45000次触发器。

我的触发器基本上是将记录从TableA复制到TableB。

触发器:

array1 = input.split(//).map(&:to_i)

以上只是我触发器的模板。

另外,我有一个问题,上面提到的触发器,它是如何工作的?喜欢为每一行开火还是在所有插入完成后?

1 个答案:

答案 0 :(得分:3)

在SQL Server中,insert语句完成时会触发触发器。

在某些数据库中,会为插入的每一行执行触发器(在这些数据库中for each row通常是语法的一部分)。相比之下,SQL Server会跟踪已更改的行,这就是为什么它们存储在类似于表的结构inserteddeleted中 - 并且假设它们只包含一行是错误的