SSIS执行SQL任务有效,但在执行报告中显示错误消息

时间:2017-03-10 16:48:34

标签: sql-server ssis ssis-2012

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

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

  

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

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

1 个答案:

答案 0 :(得分:0)

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

  1. 将结果插入临时表
  2. 检查Temp Table是否包含行
  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

  5. 上添加表达式