wake-up-neo.net

Gibt es eine Übersicht aller SQL Server 2012-Fehlercodes?

SQLGetDiagRec gibt einen nativen Fehlercode zurück. Gibt es irgendwo eine Übersicht über die Fehlercodes von SQL Server 2012? Ich konnte auf MSDN nichts finden.

14
Antineutrino
use master
select * from sysmessages
28
David Brabant

Ich kann keine Liste der einzelnen Codes im Internet finden. Ich habe jedoch eine Liste der Schweregrade hier auf MSDN gefunden. Sie sind wie folgt:

Schweregrad/Beschreibung

  • 0-9: Informationsnachrichten, die Statusinformationen zurückgeben oder Fehler anzeigen, die nicht schwerwiegend sind. Das Datenbankmodul löst keine Systemfehler Mit den Schweregraden 0 bis 9 aus.
  • 10: Informationsnachrichten , Die Statusinformationen zurückgeben oder nicht schwerwiegende Fehler melden. Aus Kompatibilitätsgründen konvertiert das Datenbankmodul den Schweregrad 10 In den Schweregrad 0, bevor die Fehlerinformationen zurückgegeben werden die aufrufende Anwendung.
  • 11-16: Zeigt Fehler an, die vom Benutzer Behoben werden können.
  • 11: Gibt an, dass das angegebene Objekt oder die angegebene Entität nicht vorhanden ist.
  • 12: Ein besonderer Schweregrad für Abfragen, die aufgrund von Speziellen Abfragehinweisen kein Sperren verwenden. In einigen Fällen können Leseoperationen, die von Ausgeführt werden, zu inkonsistenten Daten führen, da Sperren Nicht verwendet werden, um die Konsistenz zu gewährleisten.
  • 13: Zeigt Deadlock-Fehler der Transaktion An.
  • 14: Zeigt sicherheitsrelevante Fehler an, wie z. B. Berechtigung verweigert.
  • 15: Zeigt Syntaxfehler im Befehl Transact-SQL An.
  • 16: Zeigt allgemeine Fehler an, die vom Benutzer Behoben werden können.
  • 17-19: Zeigt Softwarefehler an, die vom Benutzer Nicht behoben werden können. Informieren Sie Ihren Systemadministrator über das Problem.
  • 17: Gibt an, dass Die Anweisung verursacht hat, dass SQL Server keine Ressourcen mehr hat (z. B. Arbeitsspeicher, Sperren oder Speicherplatz für die Datenbank) oder dass ein bestimmter Grenzwert von Überschritten wird der Systemadministrator.
  • 18: Zeigt ein Problem in der Database Engine-Software an, die Ausführung der Anweisung wird jedoch abgeschlossen, und mit Wird die Verbindung zur Instanz des Datenbankmoduls aufrechterhalten. Der Systemadministrator sollte dies tun Bei jeder Meldung mit wird ein Schweregrad von 18 angezeigt.
  • 19: Gibt an, dass ein nicht konfigurierbarer Database Engine-Grenzwert überschritten wurde und der aktuelle Stapelprozess Beendet wurde. Fehlermeldungen mit einem Schweregrad von 19 oder Höher stoppen die Ausführung des aktuellen Stapels. Schweregrad 19 - Fehler sind selten und müssen vom Systemadministrator oder Ihrem primären Supportanbieter behoben werden. Wenden Sie sich an Ihren Systemadministrator, wenn Eine Nachricht mit dem Schweregrad 19 ausgelöst wird. Fehlermeldungen mit dem Schweregrad Von 19 bis 25 werden in das Fehlerprotokoll geschrieben.
  • 20-24: Zeigen Sie Systemprobleme an und sind schwerwiegende Fehler. Dies bedeutet , Dass die Datenbankmodul-Task, die eine Anweisung oder einen Stapel Ausführt, nicht mehr ausgeführt wird. Die Aufgabe zeichnet Informationen darüber auf, was Aufgetreten ist, und wird dann beendet. In den meisten Fällen wird die Verbindung der Anwendung Zur Instanz des Database Engine (Datenbankmodul) möglicherweise ebenfalls beendet. In diesem Fall kann die Anwendung Je nach dem Problem möglicherweise nicht erneut verbunden werden . Fehlermeldungen in diesem Bereich können sich auf alle Prozesse Auswirken, die auf Daten in derselben Datenbank zugreifen, und Angeben, dass eine Datenbank oder ein Objekt beschädigt ist. Fehlermeldungen mit dem Schweregrad Von 19 bis 24 werden in das Fehlerprotokoll geschrieben.
  • 20: Zeigt an , Dass bei einer Anweisung ein Problem aufgetreten ist. Da das Problem Nur die aktuelle Aufgabe betrifft, ist es unwahrscheinlich, dass die Datenbank Selbst beschädigt wurde.
  • 21: Zeigt an, dass ein Problem Aufgetreten ist, das sich auf alle Aufgaben in der aktuellen Datenbank auswirkt. Es ist jedoch unwahrscheinlich, dass Die Datenbank selbst beschädigt wurde.
  • 22: Zeigt an, dass die in der Nachricht angegebene Tabelle oder der Index durch ein Software- oder Hardwareproblem beschädigt wurde. Schweregrad 22 Fehler treten Selten auf. Wenn eines auftritt, führen Sie DBCC CHECKDB aus, um festzustellen, ob andere Objekte in der Datenbank ebenfalls beschädigt sind. Das Problem kann nur im Zwischenspeicher liegen und nicht auf der Festplatte. Wenn dies der Fall ist, wird das Problem durch einen Neustart der Instanz Des Datenbankmoduls behoben. Um die Arbeit mit Fortzusetzen, müssen Sie die Verbindung zur Instanz des Datenbankmoduls erneut herstellen. Verwenden Sie andernfalls DBCC, um das Problem zu beheben. In einigen Fällen müssen Sie Die Datenbank wiederherstellen. Wenn das Problem durch den Neustart der Instanz des Datenbankmoduls Nicht behoben wird, liegt das Problem auf der Festplatte . Manchmal kann das Problem durch das Zerstören des in der Fehlermeldung Angegebenen Objekts behoben werden. Wenn die Nachricht beispielsweise Meldet, dass die Instanz von Database Engine eine Zeile mit der Länge Von 0 in einem nicht gruppierten Index gefunden hat, löschen Sie den Index und erstellen Sie ihn neu.
  • 23: Gibt an, dass die Integrität der gesamten Datenbank aufgrund eines Hardware- oder Softwareproblems in der Frage Ist. Schweregrad 23 Fehler treten selten auf. Wenn einer auftritt, führen Sie DBCC CHECKDB aus, um das Ausmaß des Schadens Zu bestimmen. Das Problem liegt möglicherweise nur im Cache und nicht in Auf der Festplatte. Ist dies der Fall, wird das Problem durch einen Neustart der Datenbankinstanz Behoben. Um weiter arbeiten zu können, müssen Sie Erneut mit der Instanz des Datenbankmoduls verbinden. Verwenden Sie andernfalls DBCC, um das Problem zu beheben. In einigen Fällen müssen Sie möglicherweise die Datenbank wiederherstellen.
  • 24: Zeigt einen Medienfehler an. Der Systemadministrator muss möglicherweise Die Datenbank wiederherstellen. Sie müssen möglicherweise auch Ihren Hardwarehersteller anrufen.
7
Keith

Ich habe die Codes für MS SQL Server 2008 R2 gefunden, die meisten sind jedoch für die späteren Versionen gültig: http://technet.Microsoft.com/en-us/library/cc645603(v=sql .105) .aspx

Ich habe auch selbst nach einer Liste gesucht und festgestellt, dass Sie sie alle in der Master-Datenbank anzeigen können, indem Sie diese Anweisung ausführen:

SELECT * FROM sysmessages
3
Jose

In SQL Server 2005 und höher können Sie Folgendes verwenden:

SELECT * FROM sys.messages

Wie bereits erwähnt, können Sie auch Folgendes verwenden (verfügbar in SQL Server 2000):

SELECT * FROM sysmessages
0
alienriver49