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-Anweisungen » SQL-Anweisungen (P-Z)

 

SET OPTION-Anweisung

Mit dieser Anweisung ändern Sie die Werte von Datenbankoptionen.

Syntax
SET [ EXISTING ] [ TEMPORARY ] OPTION
[ Benutzer-ID. | PUBLIC.] Optionsname=Optionswert ]
Benutzer-ID : Bezeichner, Zeichenfolge oder Hostvariable
Optionsname : Bezeichner
Optionswert : Zeichenfolgenliteral
Embedded SQL-Syntax
SET [ TEMPORARY ] OPTION
 [ Benutzer-ID.| PUBLIC.] Optionsname=Optionswert ]
Benutzer-ID : Bezeichner, Zeichenfolge oder Hostvariable
Optionsname : Bezeichner, Zeichenfolge oder Hostvariable
Optionswert : Hostvariable (Bezeichner zulässig), Zeichenfolge, Bezeichner oder Zahl
Bemerkungen

Die SET OPTION-Anweisung wird verwendet, um Optionen zu ändern, welche das Verhalten des Datenbankservers beeinflussen. Die Einstellung eines Optionswertes kann das Verhalten für alle oder nur für einzelne Benutzer ändern. Die Änderung kann temporär oder permanent sein.

Jede Option, ob benutzerdefiniert oder nicht, muss eine öffentliche Einstellung haben, bevor ein benutzerspezifischer Wert zugeordnet werden kann. Der Datenbankserver unterstützt bei benutzerdefinierten Optionen nicht das Setzen von TEMPORARY-Werten.

Die Optionsklassen sind:

Eine Liste und Beschreibung aller verfügbaren Optionen finden Sie unter Datenbankoptionen.

Sie können Optionen für drei Bereichsebenen einstellen: public, user und temporary. Eine temporäre Option hat den Vorrang vor anderen Optionen, und Benutzeroptionen haben Vorrang vor öffentlichen Optionen. Wenn Sie eine Option auf Benutzerebene für den aktuellen Benutzer festlegen, wird die entsprechende temporäre Option ebenfalls festgelegt.

Syntax 1 lässt keine Angabe einer Hostvariablen für Optionswert zu. Sie können aber das gewünschte Ergebnis erzielen, indem Sie stattdessen die EXECUTE IMMEDIATE-Anweisung verwenden. Weitere Hinweise finden Sie unter EXECUTE IMMEDIATE-Anweisung [SP].

Wenn Sie das Schlüsselwort EXISTING verwenden, können Optionswerte nicht für eine individuelle Benutzer-ID gesetzt werden, es sei denn, es besteht bereits eine PUBLIC-Benutzer-ID-Einstellung für diese Option.

Wenn Sie eine Benutzer-ID angeben, gilt der Optionswert für diesen Benutzer (oder bei einer Gruppen-Benutzer-ID für die Mitglieder dieser Gruppe). Wenn Sie PUBLIC angeben, gilt der Optionswert für alle Benutzer, die keine individuelle Einstellung für die Option haben. Standardmäßig gilt der Optionswert für die gegenwärtig angemeldete Benutzer-ID, die die SET OPTION-Anweisung ausgegeben hat.

Die folgende Anweisung nimmt beispielsweise eine Optionsänderung für den Benutzer DBA vor, wenn DBA der Benutzer ist, der die SQL-Anweisung ausgegeben hat:

SET OPTION precision = 40;

Die folgende Anweisung führt die Änderung jedoch für die Benutzer-ID PUBLIC durch, eine Benutzergruppe, zu der alle Benutzer gehören.

SET OPTION Public.login_mode = Standard;

Nur Benutzer mit DBA-Berechtigungen haben die Erlaubnis, eine Option für die Benutzer-ID PUBLIC einzustellen.

Benutzer können mit der SET OPTION-Anweisung die Werte für ihre eigene Benutzer-ID ändern. Die Einstellung des Optionswertes für eine andere Benutzer-ID als Ihre eigene ist nur zulässig, wenn Sie eine DBA-Berechtigung besitzen.

Durch Hinzufügen des Schlüsselworts TEMPORARY zur SET OPTION-Anweisung wird die Dauer geändert, während der die Änderungen wirksam sind. Standardmäßig ist der Optionswert permanent: Er ändert sich solange nicht, bis er durch die SET OPTION-Anweisung explizit geändert wird.

Wenn die SET TEMPORARY OPTION-Anweisung nicht mit einer Benutzer-ID qualifiziert wird, ist der neue Optionswert nur für die aktuelle Verbindung wirksam.

Wenn SET TEMPORARY OPTION für die Benutzer-ID PUBLIC verwendet wird, gilt die Änderung so lange, wie die Datenbank läuft. Wenn die Datenbank heruntergefahren wird, werden TEMPORARY-Optionen für die Gruppe PUBLIC wieder auf ihren dauerhaften Wert zurückgesetzt.

Wenn Sie temporäre Optionen für die Benutzer-ID PUBLIC setzen, haben Sie einen Sicherheitsvorteil. Wenn zum Beispiel die login_mode-Option aktiviert ist, richtet sich die Datenbank nach der Login-Sicherheit des Systems, auf dem sie läuft. Diese temporär zu aktivieren bedeutet, dass eine Datenbank, die sich auf die Sicherheit einer Windows-Domäne bezieht, nicht gefährdet wird, wenn sie heruntergefahren und auf ein lokales System kopiert wird. In diesem Fall wird die temporäre Aktivierung der Option login_mode wieder auf ihren dauerhaften Wert zurück gesetzt, der "Standard" sein kann, ein Modus, in dem integrierte Logins nicht zulässig sind.

Wenn Optionswert nicht angegeben ist, wird die angegebene Optionseinstellung aus der Datenbank gelöscht. Wenn die Optionseinstellung individuell war, wird der Wert auf die Public-Einstellung zurückgesetzt. Beim Löschen der TEMPORARY-Option wird die Optionseinstellung auf die dauerhafte Einstellung zurückgesetzt.

Achtung

Die Änderung von Optionseinstellungen während des Abrufs von Zeilen aus einem Cursor wird nicht unterstützt, da dies zu undefinierten Ergebnissen führen kann. Das Ändern der Einstellung "date_format", während sie von einem Cursor abgerufen wird, würde zum Beispiel zu unterschiedlichen Datumsformaten in den Ergebniszeilen führen. Ändern Sie Optionseinstellungen nicht während des Abrufens von Zeilen.

Die SET OPTION-Anweisung wird vom SQL Flagger ignoriert.

Berechtigungen

Keine Berechtigung erforderlich, um Ihre eigenen Optionen einzustellen

DBA-Berechtigung erforderlich, um Datenbankoptionen für andere Benutzer oder PUBLIC einzustellen

Nebenwirkungen

Wenn TEMPORARY nicht angegeben ist, wird ein automatisches Festschreiben ausgeführt.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Das Datumsformat wird auf On gesetzt:

SET OPTION public.date_format = 'Mmm dd yyyy';

Die Option wait_for_commit wird auf On gesetzt:

SET OPTION wait_for_commit = 'On';

Es folgen zwei Beispiele in Embedded SQL:

1. EXEC SQL SET OPTION :user.:option_name = :value;
2. EXEC SQL SET TEMPORARY OPTION date_format = 'mm/dd/yyyy';

Legen Sie die date_format-Option für den Benutzer fest, der derzeit verbunden ist. Zukünftige Verbindung für dieselbe Benutzer-ID verwenden diesen Optionswert.

SET OPTION date_format = 'yyyy/mm/dd';

Die folgende Anweisung entfernt die Einstellung der Option date_format für die aktuelle Benutzer-ID. Nach dem Ausführen der Anweisung wird stattdessen die date_format-Einstellung für PUBLIC verwendet.

SET OPTION date_format=;