我们已经部署了一个 SSIS 2012 项目和两个 ADO.Net 项目连接管理器。(项目中有五个包。)
该项目有一个相关的环境,带有一个包含服务器名称的变量。我想将变量映射到项目连接管理器的 ServerName 属性。
当我在 SSMS 2012 中右键单击 SSIS 项目节点,启动配置对话框时,我可以找到连接管理器,并突出显示它以查看其属性,但 ServerName 在属性列表中不可见。
通常,ServerName 属性列在 RetainSameConnection 属性下。它在同一项目中的其他项目连接管理器上可见。
为什么只为一个连接管理器隐藏此属性?
我通过使用 Visual Studio 2012 打开项目找到了答案。
在 Visual Studio 中打开 SSIS 项目,然后在“解决方案资源管理器”窗格中选择 .conmgr 文件。使用上下文菜单并选择“查看代码”菜单选项。这将显示连接管理器文件中的 XML。
在 XML 中,有这个标签:
ServerName 属性是通过表达式设置的!
通过 Solution Explorer 树本身不容易辨别这一事实。选择 conmgr 文件后,“属性”窗格仅显示“文件名”和“完整路径”属性。
当您打开一个使用连接管理器的包并在包编辑器窗格中选择该连接管理器时,属性窗格会显示许多其他属性,包括表达式。ServerName 属性只有在设置后才会在表达式列表中可见。
有两种方法可以解决此问题:
无论哪种方式,一旦 ServerName 属性不再由连接管理器定义文件中的表达式设置,它就会在 SSMS 2012 的“配置”对话框中作为可配置参数公开。