SSIS参数化SQL表中的数据源

时间:2014-01-29 11:36:45

标签: sql sql-server parameters ssis

这就是我一直在努力做的事情:

SSIS包:项目

enter image description here

使用以下sql语句,使用链接服务器:

USE [TARGET]
GO

INSERT INTO [dbo].[Item]
       ([No_]
       ,[Description]
       ,[Unit Price]
       )
SELECT [No_]
      ,[Description]
      ,[Unit Price]
FROM [SOURCE].[Database].[dbo].[Item]

enter image description here

我想做什么:

enter image description here

在sql表数据源中存储TARGET和SOURCE的数据源:

Data Source=localhost;Initial Catalog=TARGET;Provider=SQLNCLI.1;Integrated Security=SSPI;Auto Translate=False;

Data Source=localhost;Initial Catalog=SOURCE;Provider=SQLNCLI.1;Integrated Security=SSPI;Auto Translate=False;

最后更新指向参数的SSIS包中的sql语句。

INSERT INTO @SOURCE +'.[Item]'+
       ([No_]
       ,[Description]
       ,[Unit Price]
       )
SELECT [No_]
      ,[Description]
      ,[Unit Price]
FROM @SOURCE +'.[Item]'+

但到目前为止还没有成功,有什么建议吗?


更新:

缺少一张照片:

enter image description here

在连接管理器中,我想从表Datasource获取数据源信息(在“我想做什么”之后的第一张图片)


更新2:

这可能吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以在Execute SQL Task中尝试:

DECLARE @query nvarchar(max) 
DECLARE @TARGET nvarchar(200) = ?
DECLARE @SOURCE nvarchar(200) = ?
Set  @query ='INSERT INTO ' + @TARGET +'.[Item]
   ([No_]
   ,[Description]
   ,[Unit Price]
   )
   SELECT [No_]
  ,[Description]
  ,[Unit Price]
  FROM ' +  @SOURCE +'.[Item]'
EXEC(@query)

Parameter Mapping地图中?创建的变量,即目标和来源