mssql的错误捕抓
BEGIN TRY
/*写入正常的语句*/
select(1);
END try BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrNum,
ERROR_SEVERITY() AS ErrSev,
ERROR_STATE() as ErrState,
ERROR_PROCEDURE() as ErrProc,
ERROR_LINE() as ErrLine,
ERROR_MESSAGE() as ErrMsg;
END CATCH;
也可以嵌入事物
BEGIN TRAN;
BEGIN TRY
/*写入正常的语句*/
select(1);
COMMIT TRAN;
END TRY BEGIN CATCH
IF @@TRANCOUNT>0
ROLLBACK TRAN;
SELECT
ERROR_NUMBER() AS ErrNum,
ERROR_SEVERITY() AS ErrSev,
ERROR_STATE() as ErrState,
ERROR_PROCEDURE() as ErrProc,
ERROR_LINE() as ErrLine,
ERROR_MESSAGE() as ErrMsg;
END CATCH;
而且在中间调用其他存储过程也可以捕抓到其他存储过程的事物,如果嵌套的存储过程也有try的话那错误就会捕抓不到