--1. 使用 RAISERROR, 错误行不够准确,不简洁
BEGIN TRY
SELECT 1/0
END TRY
BEGIN CATCH
RAISERROR ('自定义错误',12,1)
/*
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage
*/
END CATCH
/*
(0 行受影响)
消息 50000,级别 12,状态 1,第 6 行
自定义错误
*/
--2. 使用 THROW, 错误行位置准确,简洁
BEGIN TRY
SELECT 1/0
END TRY
BEGIN CATCH
THROW
END CATCH
/*
(0 行受影响)
消息 8134,级别 16,状态 1,第 25 行
遇到以零作除数错误。
--也可以改成 THROW 50001,'自定义消息',1
--但就提示错误行就不准确了了
*/
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交