我实现了SSIS包,它将数据从Sql Server数据库移动到另一个数据库。该软件包具有一组数据流任务,可以在不同的表中同时复制数据。每个数据流任务都包含OLE DB数据源和Sql Server目标。
套餐工作正常,直到我决定实施交易。我发现在包级别上不可能只将TransactionOption
设置为Supported
,因为SSIS无法处理多个同时进程中的事务。所以,我决定用这种方式:
http://consultingblogs.emc.com/jamiethomson/archive/2005/08/20/SSIS-Nugget_3A00_-RetainSameConnection-property-of-the-OLE-DB-Connection-Manager.aspx
但现在我有另一个问题。我有“Unable to bulk copy data. You may need to run this package as an administrator
”错误。这些错误发生在随机的地方。例如,如果我在第一次运行包时命名为“任务A”的数据流任务可以正确执行,但是当我第二次运行包时它会抛出错误。
如何在我的案例中实施交易? (为了顺序执行数据流任务,更改包不是一个选项)
答案 0 :(得分:3)
我的MS SQL Server 2008R2和SSIS最近出现了错误。发现错误:
[SQL Server目标[16]]错误:无法批量复制数据。您可能需要以管理员身份运行此程序包。 [SSIS.Pipeline]错误:组件“SQL Server目标”(16)未执行预执行阶段并返回错误代码0xC0202071。
但无法以管理员身份运行解决此问题。错误只有一步,我终于发现当我增加SQL Server目标的超时时我摆脱了错误。有趣的是,通过读取外部ADO NET Source我得到了一个正确的错误,帮助我看到超时是问题。