SSIS 执行 SQL 任务错误“指定了单行结果集,但未返回任何行。”

Diz*_*y49 3 sql-server ssis etl

我正在尝试我认为相对容易的事情。我使用 SQL 任务在表中查找文件名。如果存在,则执行某些操作,如果不存在,则不执行任何操作。

这是我在 SSIS 中的设置:

SSIS设置

我的“表中存在文件”中的 SQL 语句如下,结果集为“单行”:

SELECT ISNULL(id,0) as id FROM PORG_Files WHERE filename = ?
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

我的约束是:

在此输入图像描述

当我运行它时,表中还没有文件,因此它应该不返回任何内容。我已经尝试ISNULLCOALESCE设置一个值。我收到以下错误:

错误:表中存在文件,执行 SQL 任务时出现错误:0xC002F309:为变量“id”赋值时发生错误:“指定了单行结果集,但未返回任何行。”。

不知道如何解决这个问题。和ISNULLCOALESCE在 SO 和 MSDN 上找到的建议

jra*_*234 5

尝试将 SQL 语句更改为 a COUNT,然后比较表达式将读取为@ID > 0。因此,如果您有与您的模式匹配的文件,则计数将大于 0,如果没有文件,则返回 0。

 SELECT COUNT(id) as id FROM PORG_Files WHERE filename = ?
Run Code Online (Sandbox Code Playgroud)