Diz*_*y49 3 sql-server ssis etl
我正在尝试我认为相对容易的事情。我使用 SQL 任务在表中查找文件名。如果存在,则执行某些操作,如果不存在,则不执行任何操作。
这是我在 SSIS 中的设置:
我的“表中存在文件”中的 SQL 语句如下,结果集为“单行”:
SELECT ISNULL(id,0) as id FROM PORG_Files WHERE filename = ?
Run Code Online (Sandbox Code Playgroud)
我的约束是:
当我运行它时,表中还没有文件,因此它应该不返回任何内容。我已经尝试ISNULL过COALESCE设置一个值。我收到以下错误:
错误:表中存在文件,执行 SQL 任务时出现错误:0xC002F309:为变量“id”赋值时发生错误:“指定了单行结果集,但未返回任何行。”。
不知道如何解决这个问题。和ISNULL是COALESCE在 SO 和 MSDN 上找到的建议
尝试将 SQL 语句更改为 a COUNT,然后比较表达式将读取为@ID > 0。因此,如果您有与您的模式匹配的文件,则计数将大于 0,如果没有文件,则返回 0。
SELECT COUNT(id) as id FROM PORG_Files WHERE filename = ?
Run Code Online (Sandbox Code Playgroud)