如何在SSIS表达式中动态调用表并生成对应SQL查询语句
SSIS动态SQL拼接表达式实现方案
最终可用表达式
你可以直接在SSIS表达式编辑器中使用如下代码,运行时会自动根据[User::Tablename1]的取值生成对应SQL语句:
@[User::Tablename1] == "Customer" ? "select * from dbo.Customer where CustID = 1" : "select * from dbo." + @[User::Tablename1] + " where ProdID = 1"
配置注意事项
- 建议提前新建一个字符串类型的变量(比如命名为
[User::DynamicSQL])存储生成的SQL语句,将该变量的EvaluateAsExpression属性设置为True,再把上面的表达式粘贴到该变量的表达式栏即可 - 表达式用SSIS原生三元运算符
判断条件 ? 条件成立返回值 : 条件不成立返回值实现分支逻辑,不需要额外引入脚本任务 - 如果你的表名可能包含空格、特殊字符,建议调整表达式为表名增加方括号包裹,避免SQL语法错误,示例写法:
@[User::Tablename1] == "Customer" ? "select * from dbo.[Customer] where CustID = 1" : "select * from dbo.[" + @[User::Tablename1] + "] where ProdID = 1"
内容的提问来源于stack exchange,提问作者Bobo
相关产品推荐
相关产品推荐

