Ssis SSI使用查询名称中的变量
假设我有以下场景Ssis SSI使用查询名称中的变量,ssis,Ssis,假设我有以下场景 Select age ,address ,full_name from [dbo].customers 我想用一个ssis变量替换[dbo]部分,因此当我们运行这个包并需要替换模式时,这是小菜一碟 到目前为止,我一直在尝试创建一个名为schema\u var\u name的SQL变量,并将其附加到前面,但这对我来说不起作用 你能告诉我我做错了什么吗 以下是我所拥有的: "Select age ,address
Select
age
,address
,full_name
from
[dbo].customers
我想用一个ssis变量替换[dbo]
部分,因此当我们运行这个包并需要替换模式时,这是小菜一碟
到目前为止,我一直在尝试创建一个名为schema\u var\u name
的SQL变量,并将其附加到前面,但这对我来说不起作用
你能告诉我我做错了什么吗
以下是我所拥有的:
"Select
age
,address
,full_name
from
'@[User::schema_var_name]' + '.[customers]' "
您需要在SQL文本中连接
@[User::schema\u var\u name]
变量,查询的其他部分用双引号括起来(“
)。下面是SQL命令的表达式示例。然后,可以将其用作为执行SQL任务中的源语句或数据流任务中的源组件设置的变量的表达式
"Select age, address, full_name from " + @[User::schema_var_name] + ".[customers]"
您还可以构建动态sql语句,并在
执行sql任务中执行它。?
告诉任务您要在该位置使用变量。然后在参数映射下设置变量。
。您的查询如下所示:
DECLARE @schemaName NVARCHAR(100) = ?
DECLARE @sqlQuery NVARCHAR(MAX) = N'
SELECT
age
,address
,full_name
FROM
[' + @schemaName + '].customers'
EXEC(@sqlQuery)
编辑:
以下是参数映射的外观:
参数名
通常是这些字段中最不直观的。它是一个基于1的id序列,用于输入
参数。如果要使用另一个输入变量,其参数名
将是2