sql-server - SSIS:同时移动数据期间的事务

标签 sql-server ssis

我实现了 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 但现在我有另一个问题。我遇到“无法批量复制数据。您可能需要以管理员身份运行此包”错误。这些错误发生在随机的地方。例如,如果我第一次运行package,名为“Task A”的数据流任务可以正确执行,但当我第二次运行package时,就会抛出错误。

在我的情况下如何实现交易? (不能选择更改包以顺序执行数据流任务)

最佳答案

我的 MS SQL Server 2008R2 和 SSIS 最近出现错误。发现错误:

[SQL Server Destination [16]] Error: Unable to bulk copy data. You may need to run this package as an administrator. [SSIS.Pipeline] Error: component "SQL Server Destination" (16) failed the pre-execute phase and returned error code 0xC0202071.

但无法通过以管理员身份运行来解决该问题。该错误只发生了一步,我最终发现当我增加 SQL Server 目标的超时时,我就消除了该错误。有趣的是,通过读取外部 ADO NET 源代码,我得到了一个正确的错误,帮助我发现超时是问题所在。

关于sql-server - SSIS:同时移动数据期间的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388766/

相关文章:

sql-server - "Conversion failed when converting the varchar value ' 空 ' to data type int"

sql-server - 将列添加到表时强制使用默认值 - SQL Server

sql - SSIS 派生列 nvarchar 到 bit

sql-server - ssis 派生列 - 检查日期字段是否为空

c# - SSIS 和重新使用 C#

c# - 使用 C# 将格式从一行复制到另一行

sql-server - 获取存储过程的进度

sql-server - SQL Server 2014 内存中 OLTP 与 Redis

ssis - 具有多个输入的SSIS脚本组件

python - 截断表不适用于 SQL Server sqlalchemy 引擎和 pandas