参数(Parameter)是Package暴露给外界的接口,通过传递不同的参数值,能够控制 Package 的执行流程,执行不同的任务(Task)。参数分为Package级别的参数(Package Parameter)和工程级别的参数(Project Parameter),Package参数只能作用于当前的Package,而Project参数能够作用于当前Project中包含的所有Package。参数的值只能引用,不能修改。
参数除了直接赋值之外,还能通过环境变量来赋值。环境是变量的集合,参数引用不同环境中的变量,能够快速切换Package引用的参数值,例如,在测试环境和产品环境之间快速切换,这是参数化编程带来的便利。
一,参数的值
参数有三种类型的值:design_default_value,Default_Value 和 Execution_Value:
design_default_value:在设计SSIS Project时,设置parameter的默认值。
Default_Value:在project 部署到SSISDB后,如果不对Parameters value进行修改,那么 Default_Value 和 design_default_value 相同;也可以修改Parameter的default value。
Execution_Value:Package 在执行时,parameters的值是Execution Value。默认情况下,Package在执行时,使用default value作为execution value;也可以在启动Execution时,设置Parameter的值,修改Execution Value不会修改Default value。
用户可以创建参数和环境之间的映射,Package在执行时,引用环境(Environment)中的变量(Variables)为参数赋值。
1,查看参数的设计值(design_default_value) 和默认值(Default_Value)
select f.name as folder_name, p.name as project_name, op.parameter_id, op.parameter_name, case op.object_type when 20 then 'Project' when 30 then 'Package' else '' end as object_type, op.object_name, op.data_type, op.required, op.sensitive, op.design_default_value, op.default_value, case op.value_type when 'V' then 'parameter_value is a literal value' when 'R' then 'referencing an environment variable' else '' end as value_type, op.value_set, op.referenced_variable_name from catalog.object_parameters op inner join catalog.projects p on op.project_id=p.project_id inner join catalog.folders f on p.folder_id=f.folder_id where op.object_type in(20,30)