我正在尝试使用SSIS包将文件中的数据插入表中,但前提是文件中的所有数据都是好的。我已经阅读并意识到我可以通过条件拆分来分割好数据和坏数据。
但是,如果存在一些错误的数据行,我无法想出一种不写好数据的方法。
我可以使用临时表解决我的问题。我只是想我会问我是否在SSIS包中错过了更优雅的方法,而不是加载然后使用TSQL进行转换。
由于
答案 0 :(得分:0)
SSIS方式允许在事务中包装操作。根据您的任务,您需要计算数据流中的坏行,如果至少有一个坏行 - 不做任何事情即回滚。
以下是我在Pure SSIS中的表现。创建一个序列并在其上指定TransactionOption = Required,将数据流移动到序列中。将Count Rows转换添加到坏行数据流并将其结果存储到某个变量。在DataFlow内部序列之后 - 创建条件任务链接,在其中检查bad_rowcount变量是否> 0,并在下一个 - 做一个小脚本任务,它会引发错误以回滚事务
纯SSIS - 是的!比使用临时表更简单 - 不确定。