如下是通过一个存储过程实现异常捕获以及事务处理的一段t-sql:
ALTER proc [dbo].[Proc_BMIS_Target_Month_FormatData]
as
BEGIN
SET NOCOUNT ON
--此行设置此操作使用事务
SET XACT_ABORT ON
--捕获异常
BEGIN TRY
/*存储过程代码*/
END TRY
BEGIN CATCH
SELECT '处理***存储过程时出现异常',
ERROR_MESSAGE() AS ErrorMessage,
GETDATE() AS NowTime
END CATCH
END
as
BEGIN
SET NOCOUNT ON
--此行设置此操作使用事务
SET XACT_ABORT ON
--捕获异常
BEGIN TRY
/*存储过程代码*/
END TRY
BEGIN CATCH
/*在此将错误信息记录到日志表*/
INSERT INTO .dbo.ErrorLog--
SELECT '处理***存储过程时出现异常',
ERROR_MESSAGE() AS ErrorMessage,
GETDATE() AS NowTime
END CATCH
END