在单个SSIS参数中处理多个值

时间:2014-02-24 20:14:11

标签: ssis sql-server-2008-r2

我有一个在SQL 2008 R2中运行的SSIS包。此包使用从变量填充的参数从SQL语句获取数据。此变量是从单独的SQL表填充的。当变量包含单个值时,这很有效,如下所示:

User :: MachineWC =“WC1”(db字段中没有引号,仅供讨论显示)

SELECT TOP 100 [WONumber]
FROM [MyTable]
WHERE [Work Center] = (?)

执行时,问号会被单个值正确替换。但是,我想通过“IN”语法使用 多个值 ,如下所示:

SELECT TOP 100 [WONumber]
FROM [MyTable]
WHERE [Work Center] IN (?)

在这种情况下,变量将包含多个值,例如......

User :: MachineWC =“WC1,WC2,WC3”

当我这样做时,它只是吹过这个数据源而没有返回任何记录。没有显示任何错误消息,之后“执行结果”选项卡中没有任何内容表明存在任何问题。

我意识到正常的SQL语法在调用它时应该包含一个引号。换句话说,要使用多个值执行,它在SSMS中将如下所示:

SELECT TOP 100 [WONumber]
FROM [MyTable]
WHERE [Work Center] IN ('WC1','WC2','WC3')

我试图在我的表中编辑多个方法的值来测试这种语法,但是包从不找到任何记录(上面的语句确实在SSMS中返回多个记录)。这几乎就像SSIS“自动”附加单引号/ appostrophe,但我无法正确地获得格式。

我非常感谢任何人可以给我的任何建议。 谢谢!

0 个答案:

没有答案