【问题标题】: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 添加一些验证以避免空结果集
- 将结果插入到临时表中
- 检查临时表是否包含行
-
如果不是,则选择不重要的行
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)