Sql server SSIS:同步移动数据期间的事务

Sql server SSIS:同步移动数据期间的事务,sql-server,ssis,Sql Server,Ssis,我实现了SSIS包,它将数据从SQLServer数据库移动到另一个数据库。此包具有一组数据流任务,这些任务同时复制不同表中的数据。每个数据流任务都包含OLE DB数据源和Sql Server目标 在我决定实现事务之前,这个包一直运行良好。我发现不可能在包级别将TransactionOption设置为Supported,因为SSI无法在多个同时的进程中处理事务。所以,我决定用这种方式: 但现在我有另一个问题。我有“无法批量复制数据。您可能需要以管理员身份运行此程序包”错误。这些错误发生在随机的地方

我实现了SSIS包,它将数据从SQLServer数据库移动到另一个数据库。此包具有一组数据流任务,这些任务同时复制不同表中的数据。每个数据流任务都包含OLE DB数据源和Sql Server目标

在我决定实现事务之前,这个包一直运行良好。我发现不可能在包级别将
TransactionOption
设置为
Supported
,因为SSI无法在多个同时的进程中处理事务。所以,我决定用这种方式: 但现在我有另一个问题。我有“
无法批量复制数据。您可能需要以管理员身份运行此程序包”错误。这些错误发生在随机的地方。例如,如果我在第一次运行名为“Task A”的数据流任务时运行了包,则可以正确执行,但当我在第二次运行包时,它会抛出错误


如何在我的案例中实现事务?(更改包以按顺序执行数据流任务不是一个选项)

我最近在MS SQL Server 2008R2和SSIS中遇到一个错误。发现错误:

[SQL Server Destination[16]]错误:无法大容量复制数据。您可能需要以管理员身份运行此程序包。 [SSIS.Pipeline]错误:组件“SQL Server Destination”(16)在预执行阶段失败,返回错误代码0xC0202071


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

为什么需要事务处理?因为我需要像原子操作一样运行所有数据流任务。我不想在出错时只更新部分数据。这两个数据库是否在同一个sql server实例上?@John Sansom:在我的测试中-是的,是同一个sql server实例。但在生产中,它们可以放在不同的实例上。