我有一个在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,但我无法正确地获得格式。
我非常感谢任何人可以给我的任何建议。 谢谢!