2011-08-09 67 views
0

我想將我的SQL部署腳本包裝在事務中(包含一堆模式更改)。我這樣做是因爲如果其中一部分失敗,我希望數據庫恢復到運行腳本之前的狀態。用於部署腳本的Sql Server 2005事務

我有幾個簡單的問題,我想之前推動這些變化已經解決:

  1. 是否有必要明確調用的腳本的底部上的事務提交?
  2. 是否有必要明確地檢查錯誤並在底部調用ROLLBACK,或者僅僅使用事務提供這種效果?

回答

2
  1. 是的。

  2. 是的。

您還應該調查SET XACT_ABORT ONSET XACT_ABORT ON指示SQL Server回滾整個事務,並在發生運行時錯誤時中止批處理。

這篇文章Error Handling in SQL 2005 and Later值得一讀。