【问题标题】:How to continue a Foreach loop in spite of server connectivity尽管有服务器连接,如何继续 Foreach 循环
【发布时间】:2017-10-16 23:50:03
【问题描述】:

我已经构建了一个 SSIS 包,它在 foreachloop 容器中有一个数据流任务。数据任务有一个 ole db 源和一个 ole db 目标。在 foreachloop 容器之外的开头将是一个执行 sql 任务,它将提供服务器名称列表。如果我的服务器不在线或由于任何原因无法连接,我的 foreach 循环应该忽略它并继续检查下一个可用服务器。如果找到连接,我还希望这个包在目标表中的特定字段中填充 1,如果未找到连接,则使用 0 填充。如果未找到连接,我想发送电子邮件提醒。

【问题讨论】:

    标签: sql ssis foreach-loop-container


    【解决方案1】:

    在执行 SQL 任务上放置一个 OnError 处理程序。您可以在其中更新您的 1/0 表,并为您的电子邮件正文构建一个字符串变量。

    然后将 Execute SQL 任务的“FailOnError”属性设置为 false,这样包无论如何都会继续运行。

    【讨论】:

    • 执行 SQL 任务所做的唯一事情是从存储过程返回服务器名称。错误发生在数据流任务内部,即包搜索服务器连接时
    • 对不起,我误读了问题的那一部分。然后你应该把 OnError 处理程序放在 DataFlow 任务上。
    • 那么当包遇到连接失败时我会用什么来更新表呢?我必须为失败的实例提供另一种途径,对吗?只是不确定这需要什么工具
    • 取决于连接失败的原因。如果这是一个暂时的问题,那么只需等待并再次运行它。如果它是永久性的,那么为什么您的列表中的连接不良?是否应该将其从您的服务器列表中永久删除?
    • 连接失败的唯一原因是服务器未连接或无法联系。此软件包的目的是在其中一台服务器关闭时向特定人员发送电子邮件通知。并在结果表中记录它
    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 2022-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多