我有一个应用程序,通过它我正在使用SqlBulkCopy向表中插入大量记录。
我有一个触发器,将添加到第一个表中的记录插入到另一个表中。
当我在C#中插入时,我编写了SqlBulkCopyOptions.FireTriggers,但在使用SqlServer2005时它不起作用。与SqlServer2008一起工作时,它运行良好。
在SqlServer2005中,只有来自INSERTED行的一个记录出现在第二个表中,而这是问题所在。
我能否仅使用Sql Server来管理此过程?
我有一个应用程序,通过它我正在使用SqlBulkCopy向表中插入大量记录。
我有一个触发器,将添加到第一个表中的记录插入到另一个表中。
当我在C#中插入时,我编写了SqlBulkCopyOptions.FireTriggers,但在使用SqlServer2005时它不起作用。与SqlServer2008一起工作时,它运行良好。
在SqlServer2005中,只有来自INSERTED行的一个记录出现在第二个表中,而这是问题所在。
我能否仅使用Sql Server来管理此过程?
这里的一个选项是将数据批量复制到一个暂存表中(第二个简单的表 - 不是主数据模型的一部分; 通常没有索引/约束/触发器等),然后发出基于SELECT
的INSERT
,以将数据从暂存表中获取到主事务表中。这样可以获得SqlBulkCopy
的带宽优势,但仍然具有最终INSERT
的完整SQL-Server功能。