gpt4 book ai didi

sql-server - 如何在SQL 2008 R2中记录警告(严重性错误)

转载 作者:行者123 更新时间:2023-12-03 08:35:31 25 4
gpt4 key购买 nike

我想记录从Transact SQL脚本抛出的警告,这些警告不会陷入TRY ... CATCH块中。有什么办法吗? ERROR_NUMBER()等将无法在catch块之外运行,并且我不确定如何知道是否已抛出警告。谷歌搜索的 yield 不高。

最佳答案

documentation似乎打算将错误消息打包传递给调用方。但是,它也指出,如果将语句包装在存储过程中,然后在try-catch块中调用该语句,则会捕获低严重性错误。

-- Verify that the stored procedure does not exist.
IF OBJECT_ID ( N'usp_ExampleProc', N'P' ) IS NOT NULL
DROP PROCEDURE usp_ExampleProc;
GO

-- Create a stored procedure that will cause an
-- object resolution error.
CREATE PROCEDURE usp_ExampleProc
AS
SELECT * FROM NonexistentTable;
GO

BEGIN TRY
EXECUTE usp_ExampleProc;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;

关于sql-server - 如何在SQL 2008 R2中记录警告(严重性错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com