在我看来,SQL THROW 缺少一个重要的功能,RAISERROR
那就是使用的能力,WITH LOG
以便在应用程序日志中记录错误号时可以触发警报。
有没有一种简单的方法可以让我逃避,还是我仍然需要依赖更麻烦的RAISERROR
SP sp_addmessage
?
我希望能够通过块中使用的警报通知操作THROW
员CATCH
。
在我看来,SQL THROW 缺少一个重要的功能,RAISERROR
那就是使用的能力,WITH LOG
以便在应用程序日志中记录错误号时可以触发警报。
有没有一种简单的方法可以让我逃避,还是我仍然需要依赖更麻烦的RAISERROR
SP sp_addmessage
?
我希望能够通过块中使用的警报通知操作THROW
员CATCH
。
不,
THROW
缺少一些RAISERROR
功能,包括WITH LOG
. 当 SQL Server 2012 仍处于测试阶段时,我就写过这篇博客,此后没有进行任何更改:但是,您不需要使用
sp_addmessage
向日志发送RAISERROR
消息,除非您需要 50000 之外的自定义消息编号:结果:
再次阅读问题的内容,您可能确实想用它
sp_addmessage
来实现您的最终目标。我不应该尝试单独将日志记录与其分开(如果您记录了其他错误并想要不同的警报,50000 并没有多大帮助)。将错误号放入由引发的消息的文本
RAISERROR
中的示例: