我有一个将记录插入表一中触发一个OLE DB目标组件的SSIS数据流任务。 当我执行正常的INSERT
语句针对此表,触发器触发。 当我通过SSIS任务插入记录触发不火。
我怎样才能在SSIS的触发器触发?
我有一个将记录插入表一中触发一个OLE DB目标组件的SSIS数据流任务。 当我执行正常的INSERT
语句针对此表,触发器触发。 当我通过SSIS任务插入记录触发不火。
我怎样才能在SSIS的触发器触发?
因为OLE DB目标任务使用批量插入,触发器默认情况下不被解雇。 从BULK INSERT(MSDN) :
如果没有指定FIRE_TRIGGERS,则不插入触发器执行。
我们必须手工指定FIRE_TRIGGERS通过其高级编辑器中的OLE DB组件的一部分。
然后添加“FIRE_TRIGGERS”到FastLoadOptions的值(注意,选项是逗号分隔):
有了这一选项时,应触发任务的执行过程中触发。
补充ladenedge的答案。
因为OLE DB目标任务使用批量插入,触发器默认情况下不解雇
当你拥有了“快速加载”选项选中这是真的。
如果您将其更改为普通的“表或视图”数据访问模式,你的触发器应该因为插入完成行由行通常火
为此,您可以不使用SQL Server数据工具Visual Studio中通过编辑与记事本(或任何其他文本编辑器)的DTSX文件。
搜索以下属性:
<property
dataType="System.String"
description="Specifies options to be used with fast load. Applies only
if fast load is turned on."
name="FastLoadOptions">
TABLOCK,CHECK_CONSTRAINTS
</property>
和迭戈已经描述添加值FIRE_TRIGGERS。