2013-10-01 17 views
3

我有一个应用程序,通过它我使用SqlBulkCopy将大容量记录插入表中。 我有一个触发器,将添加到First表中的记录插入到另一个表中。在Sql Server中的BulkCopy中触发器不起作用

当我插入我已经在C#中编写SqlBulkCopyOptions.FireTriggers,但它不与Sql Server 2005一起工作。当与SqlServer2008一起工作时,它的工作正常。

在Sql server 2005中,无论何时将记录插入到第一个表中,第二个表中只会出现INSERTED行中的一条记录。

我可以使用Sql Server单独管理吗?

+0

触发器是否被禁用?你确认它“正常”起作用吗? –

+0

其工作正常 – smilu

回答

0

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

+0

我们不能在应用程序中做任何更改,因为我们现在没有与我们的源代码。是否可以使用Sql而不是应用程序来实现任何替代方案? – smilu

+0

@smilu在这种情况下,我可以建议的是:不要使用SQL Server 2005.鉴于2005年(以软件方式)现在很老,这是一个真正的问题吗? –