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

SSIS Execute SQL Task works but displays error message in execution report

My Execute SQL Task 执行一个存储过程。如果它获得一些记录,则继续执行创建报告的任务。否则,它将转到脚本任务以发送电子邮件。结果集设置为 "Single row".

一切正常。但是,当存储过程没有 return 任何行时,它仍会发送一封电子邮件,但会在 SQL 执行报告中创建一条失败消息。错误消息指出:

An error occurred while assigning a value to variable "Variable": "Single Row result set is specified, but no rows were returned."

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

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

  1. 将结果插入 Temp Table
  2. 检查临时 Table 是否包含行
  3. 如果不是Select一个不重要的行

    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)