【发布时间】:2015-12-19 08:37:44
【问题描述】:
在我的程序中,我使用 try catch 块来捕获错误详细信息并登录到日志表以供将来参考。但是使用Error_message() 只会得到最后一条错误消息。
例如在执行下面的代码时,它会生成两条错误消息
ALTER TABLE [MFClassProperty]
DROP CONSTRAINT [FK_MFClassProperty_MFProperty]
错误信息是
Msg 3728, Level 16, State 1, Line 161
'FK_MFClassProperty_MFProperty2' is not a constraint.
Msg 3727, Level 16, State 0, Line 161
Could not drop constraint. See previous errors.
使用我的 try catch 块,它只记录最后一条错误消息,该消息很难找到问题。
有什么方法可以同时获取两个错误消息[在这种情况下]。
我的 catch 块代码在下面添加
BEGIN CATCH
ROLLBACK TRANSACTION
SET NOCOUNT ON
IF @Debug > 0
BEGIN
--------------------------------------------------
-- INSERTING ERROR DETAILS INTO LOG TABLE
--------------------------------------------------
INSERT INTO MFLog (
SPName
,ErrorNumber
,ErrorMessage
,ErrorProcedure
,ErrorState
,ErrorSeverity
,ErrorLine
,ProcedureStep
)
VALUES (
'spName'
,Error_number()
,Error_message()
,Error_procedure()
,Error_state()
,Error_severity()
,Error_line()
,@ProcessStep
)
END
END CATCH
【问题讨论】:
-
什么版本的 SQL Server?
-
我正在使用 SQL Server 2008 R2
标签: sql sql-server try-catch