Ändert die Werte von Datenbank- und Verbindungsoptionen.
SET [ EXISTING ] [ TEMPORARY ] OPTION [ Benutzer-ID. | PUBLIC.] Optionsname=Optionswert ]
SET [ EXISTING ] [ TEMPORARY ] OPTION [ Benutzer-ID. | PUBLIC.]Optionsname = [ Bezeichner ]
Benutzer-ID : Bezeichner
Optionsname : Bezeichner
Optionswert : ON, OFF, NULL, Zeichenfolgenliteral, Zahl, Hostvariable oder @Variablenname
Optionswerte Bei Syntax 1 sind die folgenden Optionswerte möglich:
Bei Syntax 2 können Sie jeden gültigen Bezeichner als Optionswert angeben. Mit Syntax 2 behandelt der Datenbankserver den Namen des Bezeichners, als wäre er ein in Apostrophe eingeschlossenes Zeichenfolgenliteral. Beispielanweisung:
SET TEMPORARY OPTION ansi_update_constraints = 'strict'; |
Diese Anweisung ist gleichwertig zu folgender:
SET TEMPORARY OPTION ansi_update_constraints = strict; |
Die SET OPTION-Anweisung wird verwendet, um Optionen zu ändern, welche das Verhalten des Datenbankservers beeinflussen. Die Einstellung eines Optionswerts kann das Verhalten für alle Benutzer (PUBLIC), für einen einzelnen Benutzer oder für die aktuelle Verbindung ändern. Die neue Einstellung kann entweder temporär oder permanent gelten.
Die folgenden Optionsklassen können mit der SET OPTION-Anweisung eingestellt werden:
Weitere Hinweise zu Interactive SQL-Optionen finden Sie unter Optionen in Interactive SQL.
Optionsbereich Bei den meisten Optionen können Sie die Werte in drei Bereichsstufen einstellen: öffentlich, Benutzer und Verbindung. Einige spezifische Optionen, z.B. login_mode, sind auf die öffentliche Stufe beschränkt. Eine Verbingungsoption hat den Vorrang vor den beiden anderen Stufen und Benutzeroptionen haben Vorrang vor öffentlichen Optionen. Zum Festlegen einer Option auf Verbindungsebene verwenden Sie das TEMPORARY-Schlüsselwort. Wenn Sie eine Benutzeroption für den aktuellen Benutzer einstellen, wird gleichzeitig die entsprechende Option auf Verbindungsebene eingestellt.
Wenn Sie eine Benutzer-ID angeben, gilt der Optionswert für diesen Benutzer. 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'; |
TEMPORARY-Optionen Standardmäßig ist ein neuer Optionswert permanent, es sei denn, das TEMPORARY-Schlüsselwort ist angegeben. Das Hinzufügen des Schlüsselworts TEMPORARY zur SET OPTION-Anweisung verändert die Dauer des Änderungsvorgangs.
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 permanenten Wert zurückgesetzt, der "Standard" sein kann, ein Modus, in dem integrierte Logins nicht zulässig sind.
Entfernen von Optionseinstellungen Wenn Optionswert nicht angegeben ist, wird die angegebene Optionseinstellung aus der Datenbank gelöscht. Wenn es sich um eine Optionseinstellung auf Benutzerebene gehandelt hat, wird der Wert wieder auf die PUBLIC-Einstellung zurückgesetzt. Beim Löschen der TEMPORARY-Option wird die Optionseinstellung auf die permanente Einstellung für den Benutzer zurückgesetzt.
Optionsdatentypen Optionen können boolesche, nummerische, oder Zeichenfolgenwerte haben, werden jedoch in der Datenbank immer als Zeichenfolgen gespeichert. Optionseinstellungen werden immer als Zeichenfolgen zurückgegeben, unabhängig davon, ob sie das Ergebnis einer Eigenschaftenfunktion, einer Funktion oder einer Systemprozedur sind. Optionswerte können nicht länger sein als die Seitengröße der Datenbank.
Benutzerdefinierte Optionen 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. Wenn Sie zum Beispiel eine benutzerdefinierte Option mit dem Namen ApplicationControl erstellen möchten, müssen Sie zuerst die folgende Anweisung ausführen:
SET OPTION PUBLIC.ApplicationControl = 'Default'; |
Diese Anweisung setzt die ApplicationControl-Option für alle Benutzer auf "Default" und wird bei jeder neuen Verbindung mit dem Server wirksam. Danach kann ein einzelner Benutzer seine eigene Einstellung für diese Option festlegen, indem er eine separate SET OPTION-Anweisung ausgibt.
Einschränkungen Nur Benutzer mit DBA-Berechtigung haben die Erlaubnis zum Festlegen einer Option für die Benutzer ID PUBLIC oder für andere Datenbankbenutzer.
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.
Ändern Sie Optionseinstellungen nicht während des Abrufens von Zeilen aus einem geöffneten Cursor, weil dies zu undefiniertem Verhalten führen kann, dessen Semantik nicht garantiert wird. 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.
Es gibt mehrere Möglichkeiten, den Wert von spezifischen Optionen für eine Verbindung oder einen Benutzer abzufragen. Siehe Optionseinstellungen abrufen.
Die SET OPTION-Anweisung wird vom SQL Flagger ignoriert.
Keine Berechtigung erforderlich, um Ihre eigenen Optionen einzustellen
DBA-Berechtigung erforderlich, um Datenbankoptionen für andere Benutzer oder PUBLIC einzustellen
Wenn TEMPORARY nicht angegeben ist, wird ein automatisches Festschreiben ausgeführt.
SQL/2008 Erweiterung des Herstellers.
Das Datumsformat wird für alle Benutzer ohne individuelle Einstellung festgelegt:
SET OPTION PUBLIC.date_format = 'Mmm dd yyyy'; |
Die Option wait_for_commit wird auf On gesetzt:
SET OPTION wait_for_commit = 'On'; |
Im Folgenden finden Sie ein Beispiel für Embedded SQL:
EXEC SQL SET TEMPORARY OPTION date_format = :value; |
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=; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |