如果所有行都很好,SSIS只会尝试加载文件

时间:2016-09-06 05:30:18

标签: sql-server ssis

我正在尝试使用SSIS包将文件中的数据插入表中,但前提是文件中的所有数据都是好的。我已经阅读并意识到我可以通过条件拆分来分割好数据和坏数据。

但是,如果存在一些错误的数据行,我无法想出一种不写好数据的方法。

我可以使用临时表解决我的问题。我只是想我会问我是否在SSIS包中错过了更优雅的方法,而不是加载然后使用TSQL进行转换。

Package Image

由于

1 个答案:

答案 0 :(得分:0)

SSIS方式允许在事务中包装操作。根据您的任务,您需要计算数据流中的坏行,如果至少有一个坏行 - 不做任何事情即回滚。
以下是我在Pure SSIS中的表现。创建一个序列并在其上指定TransactionOption = Required,将数据流移动到序列中。将Count Rows转换添加到坏行数据流并将其结果存储到某个变量。在DataFlow内部序列之后 - 创建条件任务链接,在其中检查bad_rowcount变量是否> 0,并在下一个 - 做一个小脚本任务,它会引发错误以回滚事务 纯SSIS - 是的!比使用临时表更简单 - 不确定。