我有一个要求,我必须通过变量在连接管理器中动态更改服务器名称。我将通过存储过程中的变量传递服务器名称。之所以这样做,是因为Package最初将在Dev环境中创建,但随后将部署在UAT上,然后部署在Live上。作为开发人员,我没有访问UAT和Live的权限。将要部署该程序包的人员将不了解Ssis。我
有人知道如何做吗?
答案 0 :(得分:0)
您可以转到“连接管理器”,然后在“属性”中单击“表达式的省略号”。选择ServerName
属性,并为其分配必要的变量或参数。只要已确认元数据在运行时正确对齐,将任何数据流任务上的DelayValidation
设置为true并将源/目标组件上的ValidateExternalMetadata
设置为false也会很有帮助。
答案 1 :(得分:0)
这通常是通过某种类型的配置完成的。
直到sis 2012为止,这仅是通过配置文件完成的,但是由于2012参数也是一个选项。
配置文件:
在DEV中设置初始配置文件,并在连接管理器中设置要由配置文件配置的连接字符串的属性。通过环境升级软件包时,您将需要更改配置文件。
在提供升级说明时,请代理应用您建立的配置文件。
参数:
与Agent非常相似,但直接得多。需要在“程序包或项目”上设置参数,然后在所配置的属性上引用引用该参数的表达式(在您的情况下为DB的连接字符串)。建立作业时,可以直接在Agent中设置参数。
作为旁注:
在环境中升级时,通常还需要通过config定义文件路径。
答案 2 :(得分:0)
您是否查看过软件包配置?使用执行SQL任务将值提取到变量中,然后在连接管理器上右键单击并选择属性。在下拉菜单中,选择ServerName属性,然后在此处使用变量将其动态设置为配置表/文件中的内容。不要忘记将连接设置为DelayValidation = True,以克服运行时编译错误。