Mit dieser Anweisung signalisieren Sie einen Fehler und senden eine Meldung an den Client.
RAISERROR Fehlernummer [ Formatzeichenfolge ] [, Argumentliste ]
Fehlernummer Die Fehlernummer ist eine fünfstellige Ganzzahl, die größer ist als 17000. Die Fehlernummer wird in der globalen Variablen @@error gespeichert.
Formatzeichenfolge Wenn die Formatzeichenfolge nicht angegeben oder leer ist, wird die Fehlernummer verwendet, um eine Fehlermeldung in den Systemtabellen ausfindig zu machen. Adaptive Server Enterprise erhält die Meldungen 17000-19999 aus der Tabelle SYSMESSAGES. In SQL Anywhere ist diese Tabelle eine leere Ansicht, sodass Fehler in diesem Bereich eine Formatzeichenfolge liefern sollten. Meldungen für die Fehlernummern 20000 und größer werden aus der Tabelle ISYSUSERMESSAGE bezogen.
In SQL Anywhere kann die Länge der Formatzeichenfolge bis zu 255 Byte betragen.
Die erweiterten Werte, welche die RAISERROR-Anweisung in Adaptive Server Enterprise unterstützt, werden in SQL Anywhere nicht unterstützt.
Die Formatzeichenfolge kann Platzhalter für die Argumente in der optionalen Argumentliste enthalten. Diese Platzhalter haben die Form %nn!, wobei nn eine Ganzzahl zwischen 1 und 20 ist.
Dazwischenliegende RAISERROR-Statusangaben und -Codes gehen verloren, wenn die Prozedur abgeschlossen ist. Wenn zum Rückgabezeitpunkt zusammen mit RAISERROR ein Fehler auftritt, dann werden die Fehlerinformationen zurückgegeben, und die RAISERROR-Informationen gehen verloren. Die Anwendung kann dazwischenliegende RAISERROR-Statusangaben abfragen, indem sie die globale Variable @@error zu verschiedenen Ausführungspunkten überprüft.
Mit der RAISERROR-Anweisung können benutzerdefinierte Fehler angezeigt und eine Meldung an den Client gesendet werden.
Keine.
Keine.
SQL/2003 Erweiterung des Herstellers
Die folgende Anweisung verursacht den Fehler 23000, der im Bereich der benutzerdefinierten Fehler liegt, und sendet eine Meldung an den Client. Beachten Sie, dass zwischen den Parametern Fehlernummer und der Formatzeichenfolge kein Komma steht. Das erste Element nach einem Komma wird als erstes Element der Argumentliste interpretiert.
RAISERROR 23000 'Invalid entry for this column: %1!', @val |
Im nächsten Beispiel wird RAISERROR benutzt, um Verbindungen zu verbieten.
CREATE PROCEDURE DBA.login_check() BEGIN // Allow a maximum of 3 concurrent connections IF( DB_PROPERTY('ConnCount') > 3 ) THEN RAISERROR 28000 'User %1! is not allowed to connect -- there are ' || 'already %2! users logged on', Current User, CAST( DB_PROPERTY( 'ConnCount' ) AS INT )-1; ELSE CALL sp_login_environment; END IF; END go GRANT EXECUTE ON DBA.login_check TO PUBLIC go SET OPTION PUBLIC.login_procedure='DBA.login_check' go |
Eine andere Methode zum Sperren von Verbindungen finden Sie unter login_procedure-Option [Datenbank].
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |