ストアド プロシージャ内のエラー処理用のテンプレート、または 99% の失敗またはエラーを処理できる一般的なステートメントだけを作成しようとしています。
SQL トランザクションと try-catch のさまざまな例をオンラインで調べた後、同僚と共有したいこのテンプレートを思いつきました。
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
ありがとう!