我的执行SQL任务执行存储过程。如果它获得了一些记录,则继续执行任务以创建报告。否则,它将转到脚本任务以发送电子邮件。 ResultSet设置为“单行”。
一切都按预期工作。但是,当存储过程不返回任何行时,它仍会发送电子邮件,但会在SQL执行报告中创建失败的消息。错误消息指出:
为变量“变量”赋值时发生错误:“指定了单行结果集,但未返回任何行。”
我无法修改我的存储过程。我有什么选择来“修复”这个错误。 (我的包按预期运行。)
答案 0 :(得分:0)
您必须向Execute SQL Task
添加一些验证以避免空结果集
如果不是选择不重要的行
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
在发送邮件任务(If Not Empty Row --> Send Mail
)