1
我試圖想出一個存儲過程中的錯誤處理模板,或者只是能夠處理99%的失敗或錯誤的一般語句。在處理TSQL腳本中的錯誤時尋找最佳實踐
在網上查看SQL事務和嘗試捕獲的不同示例後,我想出了這個模板,我想與一些同事分享,希望看看是否有人認爲我錯過了一些東西。
BEGIN TRY
BEGIN TRAN
--Place code in here.
--Your Code Ends Here
COMMIT
END TRY
BEGIN CATCH
-- There was an error
IF @@TRANCOUNT > 0
ROLLBACK --Rolls back from where error first discovered. All code after error not run.
-- Raise an error with the details of the exception
DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
SELECT @ErrMsg = ERROR_MESSAGE(), @ErrSeverity = ERROR_SEVERITY()
RAISERROR(@ErrMsg, @ErrSeverity, 1) --This will be picked up by .NET Exception handler.
END CATCH
謝謝!