为什么在SSIS插入期间我的触发器不会触发?

lad*_*dge 24 sql triggers ssis bulkinsert

我有一个带有OLE DB Destination组件的SSIS数据流任务,它将记录插入带触发器的表中.当我INSERT对该表执行一个普通语句时,触发器会触发.当我通过SSIS任务插入记录时,触发器不会触发.

如何在SSIS中触发触发器?

lad*_*dge 51

由于OLE DB目标任务使用批量插入,因此默认情况下不会触发触发器.来自BULK INSERT(MSDN):

如果未指定FIRE_TRIGGERS,则不执行任何插入触发器.

必须通过其高级编辑器手动指定FIRE_TRIGGERS作为OLE DB组件的一部分.

在此输入图像描述

然后将"FIRE_TRIGGERS"添加到FastLoadOptions的值(请注意,选项以逗号分隔):

在此输入图像描述

使用该选项后,触发器应在任务执行期间触发.


Die*_*ego 15

补充ladenedge的答案.

由于OLE DB目标任务使用批量插入,因此默认情况下不会触发触发器

选择"快速加载"选项时,这是正确的.

在此输入图像描述

如果将其更改为常规"表或视图"数据访问模式,则触发器应正常触发,因为插入是逐行完成的