在Sql Server中使用BulkCopy时触发器无效。

4

我有一个应用程序,通过它我正在使用SqlBulkCopy向表中插入大量记录。

我有一个触发器,将添加到第一个表中的记录插入到另一个表中。

当我在C#中插入时,我编写了SqlBulkCopyOptions.FireTriggers,但在使用SqlServer2005时它不起作用。与SqlServer2008一起工作时,它运行良好。

在SqlServer2005中,只有来自INSERTED行的一个记录出现在第二个表中,而这是问题所在。

我能否仅使用Sql Server来管理此过程?


触发器被禁用了吗?您确认它正常工作了吗? - ta.speot.is
1个回答

0

这里的一个选项是将数据批量复制到一个暂存表中(第二个简单的表 - 不是主数据模型的一部分; 通常没有索引/约束/触发器等),然后发出基于SELECTINSERT,以将数据从暂存表中获取到主事务表中。这样可以获得SqlBulkCopy的带宽优势,但仍然具有最终INSERT的完整SQL-Server功能。


我们现在没有应用程序的源代码,因此无法对其进行任何更改。是否可能仅使用Sql实现任何替代方案而不是应用程序? - smilu
在这种情况下,我能建议的是:不要使用SQL Server 2005。考虑到2005年现在(从软件角度来看)非常古老了,这是一个真正的问题吗? - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接