Sql server 为什么许多SQL Server严重性为10的错误实际上看起来很严重?
BOL声明SQL Server级别10消息是“返回状态信息或报告不严重错误的信息性消息” 但是,这些错误似乎很严重,且不具有信息性:Sql server 为什么许多SQL Server严重性为10的错误实际上看起来很严重?,sql-server,tsql,Sql Server,Tsql,BOL声明SQL Server级别10消息是“返回状态信息或报告不严重错误的信息性消息” 但是,这些错误似乎很严重,且不具有信息性: 2540-系统无法自行修复此错误。 2745-进程ID%d引发了用户错误%d,严重性%d。SQL Server正在终止此进程。 3606-发生算术溢出。 3607-发生零除。 这些只是其中的一小部分,似乎不仅仅是信息。它们是使用以下查询获取的: SELECT message_id, language_id, severity, is_event_logged,
- 2540-
系统无法自行修复此错误。
- 2745-
进程ID%d引发了用户错误%d,严重性%d。SQL Server正在终止此进程。
- 3606-
发生算术溢出。
- 3607-
发生零除。
SELECT
message_id,
language_id,
severity,
is_event_logged,
text
FROM sys.messages
WHERE
language_id = 1033
AND
severity = 10
为什么许多SQL Server严重性为10的错误看起来确实很严重?在您的示例中,严重性可能是主观的,
-3606-发生算术溢出。
-3607-发生零除 好吧,这对你来说可能意味着没问题,但对服务器来说,这可能会像滚雪球一样演变成严重的问题,影响到你的应用程序的业务逻辑
尽管如此,我还是同意一些/很多信息(严重性除外)不清楚/含糊不清。在您的示例中,严重性可能是主观的,
-3606-发生算术溢出。
-3607-发生零除 好吧,这对你来说可能意味着没问题,但对服务器来说,这可能会像滚雪球一样演变成严重的问题,影响到你的应用程序的业务逻辑
尽管如此,我还是同意一些/很多消息(严重性除外)不清楚/含糊不清。sys.messages中的严重性不是它们引发的实际严重性。sys.messages中的严重性不是它们引发的实际严重性。@Mitch:我猜他是在问为什么他会变得不严重(在他的观点中)当他需要严重的消息时。或者“服务器的严重性定义不明确”。@Mitch:我猜他是在问为什么他需要严重的消息时会收到非严重的(在他的观点中)。或者“服务器的严重性定义不明确”这两个特别是我会考虑严重的错误。在这16个级别中有两个对应的,我理解的是最常见的错误。什么使一个级别10和一个级别16被零分错误不同的想法?嗯,你可能想评估ReMUS的答案,我觉得这个问题解释了。+ 1为他。这两个问题我会考虑严重错误。在16级上,这两种方法都有对应的方法,我理解这是最常见的错误。你知道是什么让10级和16级除以零的误差不同吗?好吧,你可能想评估一下雷姆斯的答案,我觉得这解释了这个问题+1个给他。:)有趣。是否有关于此行为的进一步文档/解释?我想你不是在说-“出于兼容性的原因,数据库引擎在将错误信息返回给调用的应用程序之前将严重性10转换为严重性0。”很有趣。是否有关于此行为的进一步文档/解释?我想您不是在说-“出于兼容性原因,数据库引擎在将错误信息返回给调用应用程序之前,会将严重性10转换为严重性0。”