我可以在SSIS中“别名”或重复删除连接管理器吗?

时间:2013-02-13 12:01:44

标签: ssis

我已经创建了多个SSIS包,并通过将序列容器复制粘贴到单个dtsx文件中将它们集成到一个包中

结果我现在有多个连接管理器都指向相同的2个位置(因为它们被复制到每个序列容器并重命名)

有没有办法将它们合并在一起,以便我只能在其中一个重复项中更改连接字符串以反映整个包中的更改?

(我知道我可以手动更改所有任务以使用相同的连接字符串,但希望避免这种情况)

3 个答案:

答案 0 :(得分:2)

您可以将多个ConnectionManager的ConnectionString属性设置为相同的变量。这将允许您更改一次值并将其应用于所有连接。

但是,您仍然必须通过所有ConnectionManage并手动将ConnectionString属性设置为变量。 (当然,除非您希望手动编辑.dtsx文件或编写.NET应用程序以编程方式更新软件包。)删除所有额外的ConnectionManagers并更新任务和组件可能会更容易手动

答案 1 :(得分:1)

当您粘贴它们时,每个连接管理器都将获得一个新的ID属性。当它们用于Execute SQL Tasks之类的内容时,它们会显示连接管理器的友好名称,但在工作表,存储GUID。这就是您可以将Connection Manager A重命名为Connection Manager B的原因,反之亦然,而Tasks仍将使用“正确”的CM。

允许您继续拥有现有连接管理器但只需要配置2件事的方法是创建2个变量,User::ConnectionManagerAConnectionStringUser::ConnectionManagerBConnectionString将这些变量的值指定为来自包的实际连接字符串,类似于Data Source=localhost\DEV2012;Initial Catalog=FOO;Provider=SQLNCLI10.1;Integrated Security=SSPI;

使用这两个变量,然后在每个Connection Manager上,右键单击它们,在Properties窗口中找到Expressions并单击省略号。选择ConnectionString属性,然后在表达式中指定变量。

enter image description here

现在,当您的包运行时,所有这些连接管理器都是从这些表达式配置的。如果需要更改这些值,可以编辑程序包或通过dtexec应用运行时配置,也可以使用SSIS的Configurations选项。

答案 2 :(得分:0)

据我所知,你恐怕要手动完成这项工作。此外,您不希望作业中的5个连接管理器都连接到同一个DB。