2015-10-07 39 views
0

我有一個DTS包,我遇到了一個非常奇怪的問題。DTS包無法編輯參數

如果我打開解決方案,當我查看一個包時,我可以查看和編輯參數列表。

如果我打開相同的文件,就像一個獨立的文件,然後我可以看到其他的東西。參數列表空白。

有沒有人有解決方案?

根據請求提供一些額外信息。

如果我直接打開文件(在此情況下,2012)在Visual Studio中,查看參數列表,我得到如下:

enter image description here

當我打開相同的文件作爲項目的一部分,我得到如下:報告

enter image description here

沒有錯誤,但是當我打開文件獨立我再也看不到的參數。

回答

0

好吧,看來你想編輯一個包的參數的設計時間值超出了SSIS項目的上下文。正如你的屏幕截圖所指出的,如果你打開一個包含參數的SSIS包,它們就不會顯示。如果您單擊使用經典軟件包部署模型的SSIS項目的「參數」選項卡,您會得到相同的行爲。

這看起來是爲了設計,但歡迎您打開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,但通過應用配置,我知道當此包在目錄中運行時,它將使用配置的值而不是設計時值。在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; 
+0

謝謝你的幫助 – gilesrpa