【发布时间】:2021-10-19 19:32:54
【问题描述】:
我有变量 [User::Tablename1] 字符串,我需要一个可以在运行时评估的表达式来检查,
If Tablename1 is 'Customer'
select * from dbo.Customer where CustID = 1
Else If Tablename1 is any other tablename
"select * from dbo"**Tablename** where ProdID= 1
我关心的是如何使表名动态和过滤列。
【问题讨论】:
-
使用表达式。我猜你想要这个在 SQL 源中?请记住,这些表必须具有相同的列(包括数据类型),否则 SSIS 将由于映射而引发错误。
-
我的想法是默认将变量设置为第二个查询
select * from dbo**Tablename** where ProdID= 1并使用表达式检查是否[User::Tablename1] == 'Customer',然后如果表达式为真则设置第一个查询...在数据库源/目标上只需使用一个变量。
标签: sql sql-server ssis