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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Sprachelemente » Variable

 

Globale Variable

Globale Variable haben vom Datenbankserver gesetzte Werte. Die globale Variable @@version hat zum Beispiel einen Wert, der die aktuelle Versionsnummer des Datenbankservers beinhaltet.

Globale Variable werden von lokalen und Verbindungsebenen-Variablen durch zwei ihrem Namen vorangestellte @-Zeichen unterschieden. @@error und @@rowcount z.B. sind globale Variablen. Benutzer können keine globalen Variablen erstellen und die Werte von globalen Variablen nicht direkt aktualisieren.

Einige globale Variable, wie zum Beispiel @@identity, enthalten verbindungsspezifische Informationen und haben deshalb verbindungsspezifische Werte. Andere Variable, wie zum Beispiel @@connections, haben Werte, die für alle Verbindungen gelten.

Globale Variable und Spezialkonstante

Die Spezialkonstanten (zum Beispiel CURRENT DATE, CURRENT TIME, USER und SQLSTATE) sind den globalen Variablen ähnlich.

Die folgende Anweisung ruft einen Wert der globalen Variablen "version" ab.

SELECT @@version;

In Prozeduren und Triggern können globale Variable in eine Variablenliste selektiert werden. Die folgende Prozedur gibt die Serverversionsnummer im Parameter ver zurück.

CREATE PROCEDURE VersionProc ( OUT ver VARCHAR(100) )
 BEGIN
   SELECT @@version
   INTO ver;
 END;

In Embedded SQL können globale Variable in eine Hostvariablenliste selektiert werden.

Liste der globalen Variablen

Die folgende Tabelle listet die in SQL Anywhere verfügbaren globalen Variablen auf. Manche globale Variable dienen der Kompatibilität mit Transact-SQL und geben einen festen Wert von 0, 1 oder NULL zurück, wie angegeben.

Variablenname Bedeutung
@@char_convert 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@client_csid –1 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@client_csname NULL (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@connections Die Anzahl der Logins, seitdem der Server zuletzt gestartet wurde.
@@cpu_busy 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@dbts Ein Wert vom Typ TIMESTAMP, der den letzten generierten Wert darstellt, der bei allen mit DEFAULT TIMESTAMP definierten Spalten verwendet wurde
@@error

Ein Transact-SQL-Fehler, der den Erfolg oder Fehlschlag der zuletzt durchgeführten Anweisung prüft. Wenn die vorherige Anweisung erfolgreich war, wird 0 zurückgegeben. Wenn die vorherige Anweisung nicht erfolgreich war, wird die letzte Fehlernummer zurückgegeben, die das System erstellt hat. Weitere Hinweise und Beschreibungen der Werte, die von @@error zurückgegeben werden, finden Sie unter Fehlerbehandlung in Transact-SQL-Prozeduren.

Eine Anweisung wie z.B. if @@error != 0 return veranlasst ein Beenden, falls ein Fehler auftritt. Jede Anweisung setzt "@@error", einschließlich PRINT-Anweisungen oder IF-Tests, zurück. Deshalb muss die Statusprüfung unmittelbar auf die Anweisung folgen, deren Erfolg Sie überprüfen möchten.

@@fetch_status

Enthält Statusinformationen aus der letzten Abruf-Anweisung. Diese Funktion entspricht @@sqlstatus, außer dass sie unterschiedliche Werte zurückgibt. Sie dient der Kompatibilität mit Microsoft SQL Server. @@fetch_status kann die folgenden Werte enthalten:

  • 0 Die Abruf-Anweisung wurde erfolgreich abgeschlossen.

  • -1 Die Abruf-Anweisung ergab einen Fehler.

  • -2 Es gibt keine weiteren Daten in der Ergebnismenge.

@@identity Der zuletzt in eine beliebige IDENTITY- oder DEFAULT AUTOINCREMENT-Spalte durch eine INSERT oder SELECT INTO-Anweisung eingefügte Wert. Weitere Hinweise finden Sie unter Globale Variable @@identity.
@@idle 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@io_busy 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@isolation Die aktuelle Isolationsstufe der Verbindung. "@@isolation" nimmt den Wert der aktiven Stufe an.
@@langid Gibt eine eindeutige Sprach-ID für die in der aktuellen Verbindung verwendete Sprache zurück
@@language Name der von der Verbindung verwendeten Sprache
@@max_connections Für den Personal Server ist dies die maximale Anzahl von gleichzeitigen Verbindungen, die mit dem Server hergestellt werden können. Der Wert beträgt 10. Für den Netzwerkserver ist dies die maximale Anzahl aktiver Clients (und nicht Datenbankverbindungen, da jeder Client mehrere Verbindungen unterstützen kann).
@@maxcharlen Maximale Länge eines Zeichens im CHAR-Zeichensatz, in Byte.
@@ncharsize Maximale Länge eines Zeichens im NCHAR-Zeichensatz, in Byte.
@@nestlevel –1 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@pack_received 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@pack_sent 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@packet_errors 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@procid Die Kennung der gerade ausgeführten gespeicherten Prozedur.
@@rowcount

Die Anzahl der von der letzten Anweisung betroffenen Zeilen. Der Wert von "@@rowcount" sollte unmittelbar nach jeder Anweisung überprüft werden.

Die INSERT-, UPDATE- und DELETE-Anweisungen setzen "@@rowcount" auf die Anzahl der betroffenen Zeilen.

Bei Cursor repräsentiert "@@rowcount" die Gesamtanzahl der von der Cursorergebnismenge an den Client zurückgegebenen Zeilen bis zur letzten Abrufanforderung.

"@@rowcount" wird nicht von Anweisungen auf "0" zurückgesetzt, die sich nicht auf Zeilen beziehen, wie z.B. eine IF-Anweisung.

@@servername Der Name des aktuellen Datenbankservers
@@spid Der Verbindungs-Handle der wartenden Verbindung. Dies ist derselbe Wert, der auch von der Prozedur "sa_conn_info" angezeigt wird.
@@sqlstatus

Enthält Statusinformationen aus der letzten Abruf-Anweisung. @@sqlstatus kann die folgenden Werte enthalten:

  • 0 Die Abruf-Anweisung wurde erfolgreich abgeschlossen.

  • 1 Die Abruf-Anweisung ergab einen Fehler.

  • 2 Es gibt keine weiteren Daten in der Ergebnismenge.

@@textsize Der aktuelle Wert der SET TEXTSIZE-Option, der die maximale Länge von Text- oder Bilddaten in Byte angibt, die mit einer SELECT-Anweisung zurückgegeben werden. Die Standardeinstellung ist 32765, die längste Byte-Zeichenfolge, die mithilfe von READTEXT zurückgegeben werden kann. Der Wert kann mithilfe der SET-Anweisung gesetzt werden.
@@thresh_hysteresis 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@timeticks 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@total_errors 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@total_read 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@total_write 0 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@tranchained Aktueller Transaktionsmodus: 0 für unverkettet oder 1 für verkettet.
@@trancount Die Verschachtelungsebene der Transaktionen. Jedes BEGIN TRANSACTION in einem Batch zählt die Transaktionsanzahl hoch.
@@transtate –1 (aus Gründen der Kompatibilität mit Transact-SQL bereitgestellt)
@@version Die Versionsnummer der aktuellen Version von Adaptive Server Anywhere

Globale Variable @@identity