SQLGetDiagRec返回本机错误代码。是否有 SQL Server 2012 错误代码的概述?我在 MSDN 上找不到任何东西。
问问题
37879 次
5 回答
35
use master
select * from sysmessages
于 2012-11-27T12:25:09.623 回答
12
我无法在互联网上找到各个代码的列表。但是,我确实在MSDN 上找到了严重级别列表。 它们如下:
严重性级别/描述
- 0-9:返回状态信息或报告不严重错误的信息性消息。数据库引擎不会引发严重性为 0 到 9 的系统错误。
- 10:返回状态信息或报告不严重错误的信息性消息。出于兼容性原因,数据库引擎在将错误信息返回给调用应用程序之前将严重性 10 转换为严重性 0。
- 11-16:表示用户可以纠正的错误。
- 11:表示给定的对象或实体不存在。
- 12:由于特殊查询提示而不使用锁定的查询的特殊严重性。在某些情况下,这些语句执行的读取操作可能会导致数据不一致,因为没有使用锁来保证一致性。
- 13:表示事务死锁错误。
- 14:表示与安全相关的错误,例如权限被拒绝。
- 15:表示 Transact-SQL 命令中的语法错误。
- 16:表示用户可以更正的一般错误。
- 17-19:表示用户无法纠正的软件错误。将问题通知您的系统管理员。
- 17:表示该语句导致 SQL Server 耗尽资源(例如数据库的内存、锁或磁盘空间)或超出系统管理员设置的某些限制。
- 18:表示数据库引擎软件出现问题,但语句完成执行,并保持与数据库引擎实例的连接。每次出现严重级别为 18 的消息时都应通知系统管理员。
- 19:表示已超出不可配置的数据库引擎限制,并且当前批处理已终止。严重级别为 19 或更高的错误消息会停止当前批处理的执行。严重级别为 19 的错误很少见,必须由系统管理员或您的主要支持提供商纠正。当出现严重级别为 19 的消息时,请联系您的系统管理员。严重级别为 19 到 25 的错误消息将写入错误日志。
- 20-24:表示系统问题并且是致命错误,这意味着正在执行语句或批处理的数据库引擎任务不再运行。该任务记录有关发生的事情的信息,然后终止。在大多数情况下,与数据库引擎实例的应用程序连接也可能终止。如果发生这种情况,根据问题,应用程序可能无法重新连接。此范围内的错误消息会影响访问同一数据库中数据的所有进程,并可能表明数据库或对象已损坏。严重级别为 19 到 24 的错误消息将写入错误日志。
- 20:表示语句遇到问题。由于该问题仅影响当前任务,因此数据库本身不太可能已损坏。
- 21:表示遇到了影响当前数据库中所有任务的问题,但不太可能是数据库本身已经损坏。
- 22:表示消息中指定的表或索引已被软件或硬件问题损坏。很少发生严重级别 22 的错误。如果出现这种情况,请运行 DBCC CHECKDB 以确定数据库中的其他对象是否也损坏。问题可能仅存在于缓冲区缓存中,而不是磁盘本身。如果是这样,重新启动数据库引擎实例可以解决问题。要继续工作,您必须重新连接到数据库引擎的实例;否则,请使用 DBCC 修复问题。在某些情况下,您可能必须恢复数据库。如果重新启动数据库引擎实例不能解决问题,则问题出在磁盘上。有时销毁错误消息中指定的对象可以解决问题。例如,
- 23:表示由于硬件或软件问题,整个数据库的完整性存在问题。很少发生严重级别 23 的错误。如果发生这种情况,请运行 DBCC CHECKDB 以确定损坏的程度。问题可能仅存在于缓存中,而不是磁盘本身。如果是这样,重新启动数据库引擎实例可以解决问题。要继续工作,您必须重新连接到数据库引擎的实例;否则,请使用 DBCC 修复问题。在某些情况下,您可能必须恢复数据库。
- 24:表示介质故障。系统管理员可能必须恢复数据库。您可能还需要致电您的硬件供应商。
于 2012-11-27T14:59:01.343 回答
6
我找到了 MS SQL Server 2008 R2 的代码,但其中大部分适用于更高版本: http ://technet.microsoft.com/en-us/library/cc645603(v=sql.105).aspx
于 2013-12-14T15:56:51.330 回答
3
我自己也在寻找一个列表,发现您可以通过运行以下语句从主数据库中查看它们:
SELECT * FROM sysmessages
于 2015-09-04T15:16:50.300 回答
0
在 SQL Server 2005 及更高版本中,您可以使用:
SELECT * FROM sys.messages
正如其他人所提到的,您还可以使用(在 SQL Server 2000 中可用):
SELECT * FROM sysmessages
于 2017-05-18T17:24:04.557 回答