Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » SQL-Dialekte und Kompatibilität » Fehlerbehandlung in Transact-SQL-Prozeduren

 

Anweisung RAISERROR in Prozeduren verwenden

Mit der RAISERROR-Anweisung können Sie benutzerdefinierte Fehler generieren. Die RAISERROR-Anweisung funktioniert so ähnlich wie die SIGNAL-Anweisung. Siehe RAISERROR-Anweisung.

Die RAISERROR-Anweisung an sich verursacht nicht die Beendigung der Prozedur, sie kann jedoch mit einer RETURN-Anweisung oder einem Test der globalen Variable @@error gekoppelt werden, um die Ausführung nach einem benutzerdefinierten Fehler zu steuern.

Wenn Sie die Datenbankoption "on_tsql_error" auf "Continue" setzen, meldet die Anweisung RAISERROR keinen Fehler mehr, der die Ausführung beendet. Stattdessen läuft die Prozedur zu Ende, speichert den RAISERROR-Statuscode sowie die Meldung und gibt den letzten RAISERROR zurück. Wenn die Prozedur, die den RAISERROR verursacht hat, aus einer anderen Prozedur aufgerufen wurde, wird der RAISERROR erst zurückgegeben, wenn die äußerste aufgerufene Prozedur beendet ist. Wenn Sie die Option on_tsql_error auf den Standardwert (Bedingt) setzen, steuert die Option continue_after_raiserror das Verhalten, das der Ausführung einer RAISERROR-Anweisung folgt. Wenn Sie die on_tsql_error-Option auf "Stop" oder "Continue" setzen, hat die on_tsql_error-Einstellung Vorrang vor der continue_after_raiserror-Einstellung.

Dazwischenliegende RAISERROR-Statusangaben und -Codes gehen verloren, nachdem die Prozedur abschließt. Falls zur Rückgabezeit ein Fehler zusammen mit RAISERROR auftritt, werden die Informationen für den neuen Fehler zurückgegeben, und die RAISERROR-Informationen sind verloren. Die Anwendung kann dazwischenliegende RAISERROR-Statusangaben abfragen, indem sie die globale Variable @@error zu verschiedenen Ausführungspunkten überprüft.