2014-01-20 68 views
1

我需要將SQL數據庫從Sybase遷移到MS SQL Server。在生產服務器上進行實際遷移之前,我首先使用SQL Server Management Studio的導入/導出嚮導創建了一個SSIS包,以便與其他數據庫進行測試。測試遷移很成功,現在我想將我的SSIS包部署到真實服務器上。快速更改SSIS包數據源參數以實現輕鬆遷移

但是,似乎我不能在Management Studio中爲其選擇不同的數據源來運行該軟件包 - 它只能在創建它的相同數據庫上運行。現在,它可以在所謂的SQL Server商業智能開發工作室(簡稱BIDS)(我正在使用SQL Server 2008版本)中進行編輯,但要經過每個數據流任務,手動更改每個〜150我正在移動的表是無效的,並且還引入了錯誤的可能性。

我有一種方法可以快速更改SSIS包的所有流程任務中的所有目標源使用的數據源?如果不是,那麼有什麼簡單的方法可以首先測試遷移測試數據庫,並在部署時簡單地更改數據源?

我正在使用ODBC數據源,但對於某些軟件包來說,它顯示的是BIDS中的OLE源。

我希望我已經夠清楚了。如果您還有其他問題,請詢問!謝謝!

+3

您是否嘗試過使用數據庫連接字符串的表達式?它可以通過變量來設置。 – Gowdhaman008

+0

當源類型保持不變時,至少可以更改數據庫連接字符串。切換到生產時,我也將從OLE數據源切換到ODBC數據源。我不知道如果改變連接字符串就足夠了。我不知道不同來源類型的差異。 – Muuse

+0

您是否需要動態更改連接管理器的提供程序?測試中您的提供商類型是什麼?您需要什麼來進行生產?例子可能是(測試)「本機OLE \ DB SQL Server Native Client 10.0」和(Prod)「.Net \ Providers \ Odbc Data Provider」 –

回答

1

我會使用連接管理器的ConnectionString屬性的變量。包級別的配置對於完成這項任務可能非常有用。幾種方法來做到這一點。我更喜歡在SQL Server中使用一個包含所有包的所有配置的表。如果您有多個軟件包並需要動態更改這些多個軟件包中的一組連接管理器,這可能會特別有效。

的基本步驟是:

  1. 您SSIS設計表面相對右鍵,選擇「包配置...」
  2. 創建配置類型的「SQL Server」
  3. 商店的封裝級配置您在SQL Server的配置表中的連接
  4. 改變連接管理器以使用變量作爲ConnectionString屬性
  5. 從配置中填充該變量通過你的包級別的配置比表
  6. 當談到時間從測試轉向生產,只需在配置表

這些截圖可以幫助更新連接字符串...

Choosing a configuration level

Configure your variable value

Use your variable for your Connection Manager's ConnectionString

Store your variable value in a Configurations table

這是一個大的軟件包管理框架,我用這本書來實現的一部分:

Microsoft SQL Server 2008 Integration Services: Problem, Design, Solution

我強烈推薦它。應該用不到一天的時間來設置它。書有一步一步的指示。

This question and its associated answers also helpful.

+1

我注意到當我用嚮導創建一個新的SSIS包時,它現在顯示作爲BIDS中的ODBC源,就像我想要的那樣。以類似的方式,您和@ Gowdhaman008建議我通過變量更改配置,我可以通過右鍵單擊連接管理器窗口中的源並選擇編輯來簡單地測試該軟件包。出於某種原因,OLE源不能更改爲ODBC源,反之亦然。我會接受你的回答。儘管這不是我所做的,但它在過程中幫助了我,並且可能適用於未來任何人的發現。 (它也做得很好!) – Muuse

+0

祝你好運,並感謝張貼你實際做了什麼來回答你的問題。很多時候,人們無法做到這一點,並且使得這個圈子不完整。 –