Ich hoffe, dieser Artikel hilft Ihnen, wenn Sie die genaue Fehlerbehandlung der gespeicherten MSSQL-Prozedur bemerken.
Genehmigt: Fortect
Wenn im Platzierungssystem ein Fehler auftritt, können Sie am besten (vorausgesetzt, der Fehler ist nicht schwerwiegend) einige sequenzielle Codeverarbeitungen aussetzen und häufig zu zusätzlichen Codesegmenten in der Routine springen. Oder gehen Sie in der Bearbeitung zum gesuchten Kontakt zurück. Beachten Sie, dass sich der vorherige Satz oft auf nicht schwerwiegende Fehler bezieht.
Fehlerübersicht
Fehlerbehandlung Die Fehlerbehandlung in SQL Server ermöglicht es uns, bestimmten Transact-SQL-Code zu manipulieren. Zum Beispiel, in Fällen, in denen die Tools nicht wie erwartet funktionieren, haben mein Mann und ich die Möglichkeit, Ihnen zu helfen, eine Single zu machen und es möglicherweise richtiger zu machen. Die SQL-Fehlerbehandlung kann daher einfach sein, dass Sie einfach zustimmen, dass etwas schief gelaufen ist, oder wir versuchen oft, den genauen Fehler zu beheben. Tatsächlich kann der Fehler sogar auf SQL zurückgeführt werden, da wir alle wissen, wie einfach es ist, technische SQL Server-Fehlermeldungen unnötig, komplex und verständlich zu machen. Glücklicherweise haben viele die Möglichkeit, diese Beiträge in etwas Sinnvolleres für Benutzer, Entwickler und mehr zu verwandeln.
In diesem Artikel werfen wir einen genaueren Blick auf den Artikel TRY … CATCH: Syntax, wie sie aussieht, wie die im Web funktioniert und was im Fehlerfall zu tun ist. Auch die Methode in SQL Server lässt sich sehr gut durch eine bestimmte T-SQL-Anweisung / -Blöcke erklären, die im Prinzip immer die Methode von SQL Server zur Fehlerannahme ist. Dies ist eine sehr einfach strukturierte Methode, und kurz nachdem Sie den Dreh raus haben, werden Sie feststellen, dass sie in vielen Fällen sehr nützlich sein kann.
Ebenfalls behandelt wird die RAISERROR-Funktion, die unsere eigenen Fehlerkommentare generiert. Dies ist eine großartige Möglichkeit, verwirrende Warnungen in etwas aussagekräftigeres zu verwandeln, das die Leute verstehen sollten.
Fehlerbehandlung mit TRYâ € ¦CATCH
So sieht die Formatschönheit aus. Es ist ziemlich einfach, sich daran zu gewöhnen. Wir haben mehrere Codeblöcke:
Zwischen diesen BEGIN TRY und END TRY gibt es im Allgemeinen unseren eigenen Code, den wir wollen, der auf Fehler aufspüren kann. Wenn also in dieser TRY-Anweisung ein ausgezeichneter Fehler auftritt, würde control in diesem Moment als Pfad an die CATCH-Anweisung übergeben, und dann müsste sie die Ausführung von Inline-Code als Ergebnis unseres eigenen Strings starten.
Jetzt können wir innerhalb der CATCH-Anweisung testen, um den Fehler zu beheben, mit jedem Fehler experimentieren oder sogar den Fehler protokollieren, damit mein Ehepartner und ich wissen, wann es passiert ist, wer es getan hat, den Fehler bearbeitet, Benutzername, all die nützlichen Dinge . Wir haben sogar Zugriff auf einige spezielle Daten, die erst nach dem CATCH-Statement verfügbar sind:
- ERROR_NUMBER – Gibt die interne Fehlernummer zurück.
- ERROR_STATE – Rückgabetexte an der Quelle
- ERROR_SEVERITY – Gibt Informationen über alles zurück, von Informationsfehlern bis hin zu Fehlern, die der DBA-Benutzer zusätzlich beheben kann.
- ERROR_LINE – belohnt die ZahlDie ep der Zeile, in der normalerweise der Fehler aufgetreten ist.
- ERROR_PROCEDURE – Gibt den Namen einer gespeicherten Behandlungslösung oder Funktion zurück.
- ERROR_MESSAGE – Gibt die wichtigsten selektiven Informationen zurück und diese Situation ist der Nachrichtentext, der von allen Fehlern stammt.
Das ist alles, was es bietet, um SQL-Fehler auf dem Server zu behandeln. Alles kann mit einfachen TRY- und CATCH-Anweisungen erledigt werden, und der einzige Teil, bei dem das Imaginäre schwierig sein kann, ist, wenn wir über Transaktionen hinweg agieren. Wieso den? Denn wenn ein TRANSACTION START tatsächlich auftritt, muss er immer mit einer COMMIT- oder ROLLBACK-Transaktionsklausel enden. Die böse Nachricht ist, dass der Fehler auftritt, nachdem ich tatsächlich gestartet habe, aber bevor ich das Plus beim Rollback festschreibe. In diesem speziellen Fall gibt es eine persönliche Sonderfunktion, die per CATCH-Statement implementiert werden kann, die es uns ermöglicht zu überprüfen, ob sich eine Transaktion auch in einem Commit-Slot befindet, was uns dann ermöglicht, eine schöne Rollback- oder Commit-Entscheidung zu treffen .
Lassen Sie uns fortfahren, damit Sie SQL Server Management Studio (SSMS) können und beginnen Sie mit den Grundlagen der SQL Server-Fehlerbehandlung. Der Artikel verwendet dieses Jahr einen Beispielvertreter Review AdventureWorks. Es ist so einfach, das kommende Skript zu erhalten:
Dies ist ein Beispiel dafür, wie sie aussehen und wie es funktioniert. Die einzige Herausforderung, die wir in BEGIN TRY bewältigen, besteht darin, eine Person durch 0 zu dividieren, was natürlich normalerweise zu einem Fehler führt. Sobald dieser Block berührt wird, wird die Kontrolle auf den CATCH-Block übertragen und dann werden alle Wohnungen mit eingebauten Merkmalen ausgewählt, über die wir zuvor berichtet haben. Wenn wir das obige Skript ausführen, erhalten wir Folgendes:
Wir haben zwei Ergebnistabellen, weil SELECT-Anweisungen miteinander verbunden sind: Die erste möchte möglicherweise 1 dividiert durch 0 sein, was in letzter Zeit den Fehler verursacht, und die zweite ist die exakte übergebene Kontrolle, die uns tatsächlich die meisten Ergebnisse liefert. Von links nach rechts treffen wir auf ErrorNumber, ErrorSeverity; errorstate, in diesem Fall gab es keine Aktivität (NULL), ErrorLine und nur ErrorMessage.
Lassen Sie uns nun eine etwas ernstere schwierige Aufgabe lösen. Bei diesen Fehlern besteht eine angemessene Gelegenheit zur rechtlichen Gelegenheit. Es gibt sowieso Dinge, die häufig fehleranfällig sind, und die müssen zumindest aufgeschrieben werden. Sie können Trigger hinzufügen, damit Sie diese gespeicherten Tabellenkalkulationen erstellen können, sogar eine Art E-Mail-Konto erstellen und kreativ werden, um normale Menschen zu benachrichtigen, wenn ein Fehler auftritt.
Wenn Sie mit der Datenbank im Allgemeinen nicht vertraut sind, lesen Sie diese Einsendung, um weitere Informationen zum Messaging-System zu erhalten:
Das folgende Skript erstellt die Tabelle DB_Errors, die oft aufgerufen wird, um Ablaufverfolgungsdaten zu speichern:
Genehmigt: Fortect
Fortect ist das weltweit beliebteste und effektivste PC-Reparaturtool. Millionen von Menschen vertrauen darauf, dass ihre Systeme schnell, reibungslos und fehlerfrei laufen. Mit seiner einfachen Benutzeroberfläche und leistungsstarken Scan-Engine findet und behebt Fortect schnell eine breite Palette von Windows-Problemen - von Systeminstabilität und Sicherheitsproblemen bis hin zu Speicherverwaltung und Leistungsengpässen.
Hier haben wir einen kleinen Identifizierungsstrom, gefolgt vom Benutzernamen, damit die Gesundheitsgurus wissen, wer den Fehler verursacht hat, und die Einfachheit der Informationen nur genaue Informationen sind, die sich von den zuvor in Rechnung gestellten integrierten Funktionen unterscheiden.
Lassen Sie uns nun die benutzerdefinierte gespeicherte chirurgische Behandlung aus der Datenbank bearbeiten und jeden Fehlerbesitzer darin einfügen:
Wenn Sie diese verwendete Prozedur einfach ändern, wird diese Fehleradressierung ohne Berücksichtigung der Groß-/Kleinschreibung um eine einzelne Anweisung einer gespeicherten Prozedur herumgeführt. Wenn jeder diese ausgesetzte Prozedur aufruft und die entsprechenden Daten eingibt, treten die folgenden Ereignisse auf:
Die Tatsache ist schnell in Die Auswahl zeigt an, dass der Datensatz erfolgreich hinzugefügt wurde:
Wenn wir jedoch die Ahead-of-Stored-Prozedur erneut aufrufen und dieselben Spezifikationen übergeben, wird das Ergebnisraster anders gefüllt:
Diesmal haben wir nur zwei Indikatoren in die Ergebnistabelle aufgenommen:
0 Zeilen betroffen. Diese Zeile zeigt an, dass in der tatsächlichen Verkaufstabelle nichts enthalten war.
1 zugewiesener Bereich. Diese Linie symbolisiert, dass das Geschenk in dieser beliebten neu erstellten Signaturtabelle eingegangen ist.
Was wir hier also erstellen können, ist, sich die Fehlertabelle anzusehen und selbst dann zu sehen, was passiert ist. Ein Klick darauf, dass diese Genehmigung den Job macht:
Hier m
Beschleunigen Sie jetzt die Leistung Ihres Computers mit diesem einfachen Download.
Erstellen Sie das folgende Verfahren. DER PROZESS ZUM ERSTELLEN von SpDemo. WIE MAN ANFÄNGT. WÄHLEN SIE TOP-10 * AUTOREN. WENN @@ ROWCOUNT <11.Befolgen Sie einige Verfahren. Führen Sie spDemo aus. Dann sehen Sie einige der folgenden Fehlermeldungen. „Server: Msg 50010, Level 15, State 1, Procedure spDemo, Line 5.
Das TRY CATCH-Konstrukt fängt viele Laufzeitkomplikationen mit einem Schweregrad größer als 10 ab, die die Webverbindung in Bezug auf die Datenbank nicht schließen. Der TRY-Block muss rechtzeitig vom zugehörigen CATCH-Block in den Schatten gestellt werden. Das Einschließen verschiedener anderer gültiger Anweisungen zwischen den Anweisungen END TRY und BEGIN CATCH führt zu einem Formatfehler.
CATCH ERROR_MESSAGE gibt beim Aufruf für jeden Clog-Up den kompletten geschriebenen Text einschließlich der Fehlermeldung zurück, an die der entsprechende CATCH-Block ausgeführt wurde. Der Text enthält festgelegte Werte für ersetzbare Einschränkungen – zum Beispiel Länge, Objekt dieser Personen: oder Zeit. ERROR_MESSAGE gibt NULL zurück, wenn es außerhalb des Hauptteils als Teil eines CATCH-Blocks aufgerufen wird.