SSIS故障情况始终触发

时间:2013-08-08 11:41:00

标签: sql-server ssis package integration

我在SSIS包中遇到流量问题。 为了提高性能,我将数据从MS Access文件导入SQL Server数据库通常具有相同的逻辑:

  • 第一个任务 - 尝试批量插入数据(表格或视图 - 快速加载)
  • 如果出现故障(例如约束违规),则将整串记录传递给下一个任务 - 正常插入(表视图)
  • 所有问题记录都会传递到后续步骤,以便登录到平面文件(txt)

我面临的问题是,即使第一次插入正常,我仍然会到达故障流程,并且始终会创建一个空的错误日志文件。 根据我的理解,只有在以前出现问题的情况下,该过程才能达到这一点。

为了更好地理解,我将图像与执行结果相关联,并且最后有绿色标记。

非常感谢任何有关变通方法的建议。我需要的是创建错误日志文件 - 仅当有关于问题的详细信息有任何错误时。

谢谢!

Wrong flow in SSIS package

1 个答案:

答案 0 :(得分:0)

我认为您可能会在一定程度上将数据流与控制流混淆。

StockExchange - 将创建错误日志,因为它可能会从数据流接收记录。

解决这个问题的方法可能是:

1)创建临时错误日志文件以临时保存失败的行,如果在临时位置成功则创建零行。

2)在“StockExchange - Get Error Desc”组件之后添加一个rowcount组件并分配给一个变量,例如iErrorCount

3)在您的控制流中,在数据流之后添加两个优先约束。一个@iErrorCount> 0和一个@iErrorCount == 0。如果它为零,则添加文件系统任务以删除临时日志文件(它具有零行)

4)对于@ErrorCount> 0路径,您添加文件系统任务以将临时日志文件复制到具有有效名称的所需位置。并添加文件系统任务以删除临时日志文件。