SSIS:在从包配置值读取的连接字符串中覆盖数据源/服务器

时间:2011-11-17 18:14:59

标签: ssis

我查看过其他帖子和问题,但找不到我需要的内容。

我对SSIS包的创建比较陌生,所以请耐心等待。

基本上,我需要根据从表中读取的IP列表连接到多个服务器。我有一个连接字符串,我正在从配置表中读取。连接字符串是通用的,因为数据源只是255.255.255.255,我想在程序包执行期间循环执行时将数据源替换为从表中读取的IP。

我正在使用IP,因为我连接的服务器不在我们的域中。我已将服务器名称设置为连接管理器表达式中的变量。因此,我希望读取pkg配置以获取整个连接字符串。然后,当我遍历IP时,服务器名称变量将被动态替换为数据源值,因为它循环遍历。我希望这是有道理的。

所以connstring是:(在config表中是通用的)

Data Source=255.255.255.255,65000;User ID=test;Password=test;Initial Catalog=myDB;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-myApp;

然后,当我获得我希望它更改为的IP列表,然后显然连接为:

Data Source=1.1.1.1,1000;User ID=test;Password=test;Initial Catalog=myDB;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-myApp;

然后是下一个IP并连接为:

Data Source=2.2.2.2,1000;User ID=test;Password=test;Initial Catalog=myDB;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Application Name=SSIS-myApp;

如何使用SSIS执行此操作?

1 个答案:

答案 0 :(得分:2)

  • 创建与有效数据库的连接管理器连接。
  • 右键单击新创建的连接管理器连接,选择Properties并复制连接字符串的值
  • 创建一个字符串变量,并将剪贴板中的连接字符串粘贴到新创建的变量
  • 的值中
  • 使用与此类似的声明添加Execute SQL Task

    选择TOP 1     '数据源='+ [IPAddress] +     ';用户ID ='+ [用户名] +     ... 来自dbo.IPTable

  • 将结果集传递给先前创建的字符串变量

  • 右键单击连接管理器连接,然后单击Expressions
  • 旁边的省略号
  • 在弹出的对话框中,在“属性”下,选择“ConnectionString”,然后单击“表达式”空白值旁边的省略号。
  • 在表达式生成器中,将变量名称添加到您创建的变量中。例如:@[User::CreatedVariableName]

你结束了。这是一个基本概念,你可以从那里调整..