DTS 包无法编辑参数

DTS Package unable to edit parameters

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

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

如果我打开同一个文件,只是作为一个独立的文件,那么尽管我可以看到其他所有内容。参数列表返回空白。

有人有解决办法吗?

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

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

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

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

好的,看来您想在 SSIS 项目上下文之外编辑包参数的设计时值。如您的屏幕截图所示,如果您打开其中包含包参数的 SSIS 包,则不会显示它们。如果您单击使用经典包部署模型的 SSIS 项目的“参数”选项卡,您会得到相同的行为。

这似乎是设计使然,但欢迎您打开一个连接项目,看看产品团队是否会改变这种行为。

同时,我看到了两种方法。第一种是手动编辑 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,但通过应用配置,我知道当这个包在目录中运行时,它将使用配置值而不是设计时值。在 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;