【问题标题】:SSIS Execute SQL Task works but displays error message in execution reportSSIS 执行 SQL 任务有效,但在执行报告中显示错误消息
【发布时间】:2017-03-10 16:48:33
【问题描述】:

我的执行 SQL 任务执行一个存储过程。如果它获得一些记录,则继续执行创建报告的任务。否则,它会转到脚本任务以发送电子邮件。 ResultSet 设置为“单行”。

一切都按预期进行。但是,当存储过程不返回任何行时,它仍然会发送一封电子邮件,但会在 SQL 执行报告中创建一条失败消息。错误消息指出:

为变量“变量”赋值时出错:“指定了单行结果集,但未返回任何行。”

我无法修改我的存储过程。我有什么选择来“修复”这个错误。 (我的包按预期运行。)

【问题讨论】:

  • 你的“变量”的数据类型和默认值是什么?

标签: sql-server ssis ssis-2012


【解决方案1】:

您必须向您的 Execute SQL Task 添加一些验证以避免空结果集

  1. 将结果插入到临时表中
  2. 检查临时表是否包含行
  3. 如果不是,则选择不重要的行

    CREATE #TempTable (Column0 Varchar(50), Column1 varchar(50), ....)
    
    INSERT INTO #TempTable
    EXEC Proc
    
    DECLARE @intCount INT
    
    SELECT @intCount = COUNT(*) FROM #TempTable
    
    IF @intCount > 0
    SELECT TOP 1 * FROM #TempTable
    ELSE
    SELECT 0
    
  4. 在发送邮件任务中添加表达式 (If Not Empty Row --> Send Mail)

【讨论】:

    猜你喜欢
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多