2008-09-02 72 views
2

我有一個SSIS包,它從SQL Server包配置表中設置一些變量數據。 (選擇「直接指定配置setings」選項)如何爲包配置使用不同的數據庫連接?

這個效果很好,當我使用的數據庫連接,我開發包時指定。但是,當我在測試環境(作爲代理作業或直接運行包)中的服務器(64位)上運行它時,我在連接管理器中指定新的連接字符串時,程序包仍會從數據庫服務器讀取設置我在開發中指定。

所有其他連接佔用正確的連接字符串,它似乎只是從錯誤的地方讀取的包配置。

任何想法或我做的事情真的不對?

+0

你有沒有得到這個工作? – jinsungy 2008-10-30 15:08:03

回答

2

我能做到這一點的唯一方法是使用Windows環境變量。您可以在環境變量中指定連接字符串和用戶首選項等內容,然後從SSIS任務中選取這些環境變量。

1

我更喜歡在SQL客戶端配置中使用服務器別名。這樣,當您決定將軟件包指向另一個SQL Server時,只需編輯指向新服務器的別名即可,無需在SSIS軟件包中進行編輯。將包移動到實時服務器時,您需要添加別名,並且它可以正常工作。

這也有助於當你有對服務器真正痛苦的命名規則,別名可以比實際名稱更具描述性的名稱。

1

我實際上並沒有完全理解你的問題,但我存儲我的連接設置的配置文件通常一個像每一個開發環境,生產等的包從配置文件中讀取連接設置它們運行時。

0

我們要保持我們的包CONFIGS在數據庫表中,我們知道它就會與我們的其他數據備份的,我們知道在哪裏可以找到它。只是一個偏好。

我已經發現,爲了得到這個工作,我可以使用環境變量配置來設置,我從閱讀我的包配置的連接管理器的連接字符串。 (雖然我不得不重新啓動SQL Server代理,然後才能找到新的環境變量,但我不希望將其部署到生產環境中)

看起來像在運行SSIS包時,這個順序:

  • 裝載每個包CONFIGS的順序,他們出現在Package Configuations組織者
  • 將連接從數據串來源計劃作業
  • 開始的作業步驟屬性選項卡運行包。

我本來期望前兩個是相反的方法,這樣我就可以從計劃作業中爲我的包配置設置數據源。這就是我希望其他人在維護包的時候尋找它的地方。

1

當你創建一個作業來調用SSIS包,您正在設置步驟,有一個標籤式區域。默認選項卡是您設置軟件包名稱的位置,下一個選項卡是您可以在其中設置配置文件的位置。爲每個軟件包配置一個配置文件,然後更改服務器(dev,test,prod)。配置文件可以直接放在dev,test和prod服務器上,然後在設置該作業時指向它們。

0

SSIS安全方式很糟糕。當我不在辦公室時,沒有人能夠支持。作業從不從配置文件讀取...我放棄。它僅在編輯數據源選項卡中的字符串時起作用。然而,如果你碰巧第二次進入工作,密碼就會丟失。可怕的設計,絕對可怕。你會認爲當你在作業步驟中指定一個xml文件時,它會從那裏讀取已定義的連接字符串,但它不會。這對其他人真的有用嗎?

0

轉到軟件包屬性並設置部署True。這應該爲你所做的工作。

0

我有相同的問題,並得到相同的答案,即您不能編輯用於SQL Server中承載的程序包配置的連接字符串,除非您指定SQL Server連接字符串應位於環境變量中。

這不幸在我的開發環境中不起作用,其中兩個環境託管在同一臺機器上。我最終按照斯科特·科爾曼的方法在SQL Server Central [免費註冊和一個好網站]上詳細說明。訣竅是您創建一個視圖來將配置設置存儲在一臺中央服務器上,然後使用連接到它的計算機來確定哪個環境處於活動狀態。

我使用了這種方法,但也使用連接到環境的用戶做出決定,因爲我的測試和開發設置運行在同一個SSIS實例上,但是作爲不同的用戶名。 Scott在評論中建議應該設置應用程序名稱,但是這不能在程序包執行作業步驟中更改,所以它不是一個選項。

我發現的另外一個警告是,我不得不在觸發器中添加「替代」觸發器來執行插入,更新和刪除配置變量。

1

如果妳使用SQL Server包配置則包的所有屬性將來自SQL Server表 - 請檢查

相關問題