SSIS-回滚删除命令

时间:2017-09-21 09:05:48

标签: sql-server ssis transactions etl data-warehouse

我正在使用SSIS包每天刷新数据。包逻辑如下,

  1. 删除目标表格中的所有行
  2. 将全新数据插入目标表。
  3. 如果插入失败,我试图找出回滚删除的方法。我尝试使用SSIS包事务如下:

    enter image description here

    但是现在,在运行删除SQL任务之后,我的程序包会长时间停滞并且不响应。 enter image description here

    这样做的推荐方法是什么?

    非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这里有很多技术需要考虑,包括一些更复杂的想法,但是如果我们看一下更简单的想法,你可以插入一个具有不同名称但结构相同的表格,只有这样才有效然后以某种方式换掉它。一种方法是使用视图来访问表,然后修改成功视图以使用刚刚插入的表。

它可能不是最优雅的方式,但它是较简单的方法之一。

答案 1 :(得分:0)

将包的“交易选项”属性的默认值更改为“#34;必需"并确保每个对象都将该属性设置为"支持"这是默认值。

此外,您可以通过围绕执行SQL任务和数据流的序列容器执行相同操作来最小化事务。

仅供参考,我无法在工作中看到照片,所以我不知道你的包装是什么样的。