DTS包无法编辑参数

时间:2015-10-07 12:46:44

标签: ssis ssis-2012 dts

我有一个DTS包,我遇到了一个非常奇怪的问题。

如果我打开解决方案,当我查看包时,我可以查看和编辑参数列表。

如果我打开同一个文件,就像一个独立的文件一样,那么虽然我可以看到其他所有内容。参数列表空白。

有没有人有解决方案?

根据要求提供一些额外信息。

如果我直接在Visual Studio中打开文件(在本例中为2012)并查看参数列表,我会得到以下内容:

enter image description here

当我作为项目的一部分打开同一个文件时,我得到以下内容:

enter image description here

没有报告错误,但当我单独打开文件时,我再也看不到参数了。

1 个答案:

答案 0 :(得分:0)

好的,似乎你想在SSIS项目的上下文之外编辑包参数的设计时间值。如屏幕截图所示,如果打开包含参数包的SSIS包,则不会显示它们。如果单击使用经典Package部署模型的SSIS项目的Parameter选项卡,则会出现相同的行为。

这似乎是设计使然,但欢迎您打开Connect项目以查看产品团队是否会更改此行为。

与此同时,我看到了两种方法。第一种是手动编辑XML。右键单击,查看代码,您将找到如下所示的部分。更改ParameterValue部分的值,您就会下雨。当然,最重要的是在使用XML之前确保你拥有一个已知的,安全的,可恢复的软件包版本 - 最好是在某种版本控制中。

  <DTS:PackageParameters>
    <DTS:PackageParameter
      DTS:CreationName=""
      DTS:DataType="3"
      DTS:DTSID="{C6988EC3-F273-4889-83B8-02A4AC8F6E9A}"
      DTS:ObjectName="MyParameter">
      <DTS:Property
        DTS:DataType="3"
        DTS:Name="ParameterValue">0</DTS:Property>
    </DTS:PackageParameter>
  </DTS:PackageParameters>

一种不同的方法,我可能会采用的方法是不关心软件包在磁盘上的含义。相反,我会在部署后专注于价值。

考虑以下代码,它在SSISDB中应用一个配置,确保MyParamter的值始终为1.静止时,值为0但是通过应用配置,我知道当这个包在目录中运行时,它& #39;将使用配置的值而不是设计时值。在受SOX / SAS70 / HIPPA / PCI等变更控制的地方,这种方法通常也会被接受。

DECLARE @var int = 1;
EXEC SSISDB.catalog.set_object_parameter_value
    @object_type = 30
,   @parameter_name = N'MyParameter'
,   @object_name = N'Package.dtsx'
,   @folder_name = N'Deploy'
,   @project_name = N'SO_ProjectDeploymentModel'
,   @value_type = V
,   @parameter_value = @var;