ALTER PROCEDURE [cr].[p_test]
@p1 int out
AS
DECLARE @ERROR_NUMBER INT,@ERROR_LINE INT,@ERROR_MESSAGE varchar(200),@ERRORPROCEDURE varchar(200);
BEGIN TRY
SET NOCOUNT ON;
SET @P1=1/0;
END TRY
BEGIN CATCH
SET @ERROR_NUMBER=ERROR_NUMBER();--返回错误号。
SET @ERROR_LINE=ERROR_LINE();--返回导致错误的例程中的行号。
SET @ERROR_MESSAGE=ERROR_MESSAGE();--返回错误消息的完整文本。
SET @ERRORPROCEDURE =ERROR_PROCEDURE();--返回出现错误的存储过程或触发器的名称。
SELECT ERROR_NUMBER() AS ErrorNumber,ERROR_LINE() AS ErrorLine, ERROR_MESSAGE() AS ErrorMessage,ERROR_PROCEDURE() AS ERRORPROCEDURE;
--INSERT INTO ... 可将信息记录到相应的表中
;THROW 60000,@ERROR_MESSAGE,111 --抛出异常
END CATCH
SQL Server Try Catch使用
最新推荐文章于 2023-07-19 08:53:38 发布