如何在ssis中进行事务回滚?

Din*_*esh 16 ssis

我有数据导入到生产服务器.在我的包中,在数据加载之前清理原始表.如果任何案件包失败.如何在SSIS中回滚原始表数据?

GSh*_*gan 25

通过在SSIS中使用Sequence Containers(Sequence,For Loop,ForEach Loop),您可以使用名为TransactionOption的属性.这允许您指定包中任务的事务行为,以及包本身在任何任务失败时回滚.

例如,如果你坚持在序列容器和设置您的任务TransactionOption=Required在容器内,并配置所有的任务来TransactionOption=Supported,他们都将加入交易的序列容器开始,如果有任何失败,事务将回滚.

您可以在此处阅读TransactionOption属性的说明和/或按照此处演练来了解如何实现此功能.

编辑:这里有另一个很好的演练(有截图)

  • 警告 !!!使用事务可能会导致问题.请参阅我的问题 - http://stackoverflow.com/questions/19869276/cannot-connect-to-database-after-putting-tasks-in-sequence-container (2认同)
  • 虽然这是2005年的一篇文章,但它今天可能仍然适用 - 谨防交易.http://consultingblogs.emc.com/jamiethomson/archive/2005/01/31/SSIS_3A00_-Beware-of-transactions.aspx (2认同)