2011-05-05 51 views
3

爲SSIS包配置參數的最佳方法是什麼? (即什麼是常見/簡單/簡單)有沒有一種簡單的方法向SSIS包提供參數?

我正在開發一個SSIS包,我想指定一個文件夾的位置來監視源文件。對於那些部署SSIS包的人,我希望儘可能簡單。

例如,我看到使用dtexecui爲連接管理器指定連接字符串很容易,但我看不到參數的位置。即沒有變量顯示在「設置值」選項卡中。

我看着包配置,但似乎他們必須通過SSIS開發人員創建,而不是SSIS包亞軍/部署(我可能失去了一些東西)

回答

5

包配置由開發人員創建,但它們填充SQL表,XML文件,註冊表或環境變量。所以填充哪些值的選擇取決於開發者,但實際值可以在部署時更改。

我發現最好的組合是在一個SQL表中使用環境變量中該表的連接字符串進行包配置。這樣你可以維護不同的測試和生產環境。

+0

謝謝傑夫,這是很好的信息! – 2011-05-05 18:01:20

+0

請注意,您的連接字符串和變量也可以在對包的調用中指定,即在要執行它的作業步驟中。我已經完成了這兩種方式,如果軟件包有一組源/目標位置,則基於環境變量的該表的配置表和連接字符串運行良好。但是,如果需要使用不同的配置重複運行相同的包(將同一組數據分發到多個位置),那麼在作業步驟中設置值通常效果更好,訣竅是使語法正確。 – Rozwel 2011-05-05 18:54:16

+0

@Rowzel - 我曾經這樣做過,但當我遇到一個客戶,他的標準安全設置非常奇怪,並且由於某種原因我們無法從工作步驟中獲取信息時停止了。 – 2011-05-06 02:25:44

0

應該有SSMS一個變量選項卡允許你指定變量來設置值。

+0

我想我錯過了一些明顯的東西。我沒看到它。 – 2011-05-05 17:46:18

+0

查看 - >其他窗口 - >變量 – SQLMenace 2011-05-05 17:48:39

+0

是的,我在BIDS(或Visual Studio中看到變量)選項卡。但我不知道如何讓部署人員容易提供價值。 (他們會知道價值,但我不提前)。 – 2011-05-05 17:59:20

3

,你可以將它們存儲在一個表中,然後動態地從表的執行SQL任務填充在運行時的變量,這樣你就不必修改包

要添加變量View-- >其他窗口 - >變量,然後點擊添加變量圖標(左上角)

+0

我從來沒有想到這一點!我一定會考慮這一點。很遺憾,沒有SSIS解決方案比「更新此表中的值」更容易。 – 2011-05-05 17:49:40

+0

還有其他一些配置文件的方法,但是表格對我來說似乎更容易,尤其是當有人需要更新值但無法訪問SQL代理作業或包時 – SQLMenace 2011-05-05 17:51:34

2

我不認爲有一個簡單而簡單的方法可以使配置參數傳遞簡單,供用戶/部署者配置。以下是幾年前我做的一個半複雜的概述。

SQL代理作業定期調用存儲過程,該存儲過程執行一些檢查,並在必要時準備數據,啓動SSIS包並將準備好的數據通過參數傳遞到包中;這些值要麼來自手頭的工作,要麼來自數據庫「配置表」,這是IT在每個環境基礎上配置的。鑑於我們的擴展環境的性質,使用傳遞到包中的參數比試圖讓包找出其數據的位置更簡單。

通過構建一個複雜的腳本並將其作爲參數傳遞給xp_cmdshell來調用該包。 DTEXEC是要調用的可執行文件,它具有強制性和可選開關,例如/ File來指定軟件包的位置。工作參數,我定義的變量SICH爲「FilesFolder」和「EMail_SMTPServer」包內,然後在價值觀傳遞給它們的使用/設置開關,像這樣:

SET @Command = 'DTEXEC' 
    + ' /File "' + @PackageLocation + '\' + @PackageName + '"' 
    + ' /Set \package.variables[FilesFolder].Value;"' + @FilesFolder + '"' 
    + ' /Set \package.variables[EMail_SMTPServer].Value;' + @SMTPServer 

/集替換他們自己的Value屬性與指定的值。注意FilesFolder額外的引號,以解釋名稱中的嵌入空格。

這實現起來相當繁瑣 - 我記得有很多樂趣讓分號分隔的電子郵件地址正常工作。事情是,它一直在運行現在在幾個環境中順利地運行了大約2年,並且建立一個新的程序是一個記錄並因此相對無痛的過程。

有很多方法可以完成這種功能,這只是其中之一。

+0

謝謝菲利普,我認爲當你說「我不認爲有一種簡單而簡單的方法......」時,你碰到了頭腦,最直接地回答了這個問題。 :-) – 2011-05-05 18:51:37

+1

「如何讓*我的*用戶使用最簡單」這個問題非常重要,最終只有您能夠回答。希望我們的建議幫助! – 2011-05-05 19:44:14

相關問題