gpt4 book ai didi

asp.net - 从SQL Server 2000错误中检索错误文本

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

我需要帮助记录来自SQL Server 2000中T-SQL的错误。我们需要记录所捕获的错误,但是在获取与坐在SQL Server Management Studio之前相同的信息时遇到了麻烦。

我可以得到一条消息,而无需任何类似这样的参数替换:

SELECT MSG.description from master.dbo.sysmessages MSG
INNER JOIN sys.syslanguages LANG ON MSG.msglangID=LANG.msglangid
WHERE MSG.error=@err AND LANG.langid=@@LANGID

但是我还没有找到找出错误参数的任何方法。我想看看:

表MYTABLE7上的约束违反MYCONSTRAINT2



表%s上的约束违反%s

谷歌搜索仅使用DBCC OUTPUTBUFFER提出了异国情调的方案,该方案需要管理员访问权限,并且不适合生产代码。如何获得替换参数的错误消息?

最佳答案

在.Net中,从sql服务器检索错误消息(以及从print或raiserror输出的任何内容)就像在SqlConnection上设置一个属性(.FireInfoMessageEventOnUserErrors = True)并处理连接的InfoMessage事件一样简单。 .Net接收的数据与您在SQL Server Management Studio结果网格的“消息”窗口中获得的数据匹配。

所有代码都放入处理事件的函数中,您可以对其进行抽象处理,以便所有连接均指向同一方法,因此在创建应用程序时,除了两行代码外,无需进行其他任何更改用于设置属性和事件的新连接(您已经将其抽象化,因此只需要在一个地方进行,对吧?)

这是我认为definitive error guide for SQL Server的链接。
http://www.sommarskog.se/error-handling-I.html

在某些情况下,即使出现错误,SQL Server也会继续处理。请参阅上一链接中标有What Happens when an Error Occurs?的标题。

关于asp.net - 从SQL Server 2000错误中检索错误文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/128190/

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