我正在尝试为存储过程中的错误处理提供一个模板,或者只是能够处理 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
谢谢!