Sql-Server

SSIS 提升包 - 移動一些儲存過程

  • November 3, 2016

我正在嘗試在 Visual Studio 中創建一個 SSIS 包,我可以在進行前端部署時使用它。速覽——

  1. 將產品數據庫複製到臨時備份
  2. 將新的/更新的儲存過程從 prod 移動到 test
  3. 執行一些查詢以使用新版本資訊、錯誤消息等更新 prod 表。
  4. 證實
  5. 如果驗證通過,則刪除臨時備份。

我堅持 #2… 有沒有辦法可以比較 PROD 和 TEST 儲存過程的差異,如果有差異則更新/添加到 PROD。我不想為每個部署的每個儲存過程添加一個 SQL 任務。我也不想擦除所有儲存過程並全部替換它們……

這給我帶來了一個相關的問題,我有另一個 SSIS 包(每晚執行),它擦除 TEST,從 PROD 重新創建 TEST,執行任何表更改,然後我手動將 SQL 任務添加到包中以用於新/更新的儲存過程。 ..有比通過 SQL 任務手動添加每個 SP 更好的方法嗎?

在這兩種情況下,我都希望能夠自動辨識和解決數據庫之間儲存過程的差異並解決,而無需為每個新/更改的過程手動添加 SQL 任務。

答案一直就在我眼前……你可以在 SSIS 包中執行 for/each 循環!我將儲存過程放在目前版本的目錄中,然後設置一個 for/each 循環來執行目錄中的每個 .sql 文件。

您是否查看過第三方工具,例如Redgate 的 SQL Compare?這旨在比較模式並簡化部署更改的過程。

我不認為 SSIS 是最適合這項任務的工具。

引用自:https://dba.stackexchange.com/questions/153905