SET-Optionen
Die folgende Tabelle enthält eine alphabetische Liste mit SET-Optionen sowie die entsprechenden Datenbank- und Serveroptionen, die in MicrosoftSQL Server unterstützt werden.
SET-Option |
Datenbankoption |
Serveroption |
Standardeinstellung |
---|---|---|---|
Keine |
Keine |
Nicht zutreffend |
|
ANSI_NULL_DEFAULT |
user options weist einen Standardwert zu |
OFF |
|
ANSI_NULLS |
user options weist einen Standardwert zu |
OFF |
|
ANSI_PADDING |
user options weist einen Standardwert zu |
ON |
|
ANSI_WARNINGS |
user options weist einen Standardwert zu |
OFF |
|
ARITHABORT |
user options weist einen Standardwert zu |
OFF |
|
Keine |
user options weist einen Standardwert zu |
OFF |
|
CONCAT_NULL_YIELDS_NULL |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
CURSOR_CLOSE ON_COMMIT |
user options weist einen Standardwert zu |
OFF |
|
Keine |
Keine |
7 |
|
Keine |
Keine |
dmy |
|
Keine |
Keine |
NORMAL |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
|
OFF |
|
Keine |
user options weist einen Standardwert zu |
OFF |
|
Keine |
Keine |
Deutsch |
|
Keine |
Keine |
Keine Begrenzung |
|
Keine |
user options weist einen Standardwert zu |
OFF |
|
Keine |
Keine |
OFF |
|
NUMERIC_ROUNDABORT |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
query governor cost limit |
OFF |
|
quoted identifier |
user options weist einen Standardwert zu |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
OFF |
|
Keine |
Keine |
N/V |
|
Keine |
Keine |
OFF |
SET-Optionen zur Analysezeit und zur Ausführungszeit
Der Zeitpunkt, ab dem eine SET-Option in Kraft tritt, hängt davon ab, ob die Option eine Analysezeitoption oder eine Ausführungszeitoption ist. Analysezeitoptionen werden während der Analyse wirksam, da die Optionen in Text auftreten, ohne dass Anweisungen zur Ablaufsteuerung berücksichtigt werden. Ausführungszeitoptionen werden während der Ausführung des Codes wirksam, in dem sie angegeben sind. Falls die Ausführung des Codes vor der Ausführung der SET-Anweisung einen Fehler erzeugt, wird die Option nicht festgelegt. Erzeugt die Ausführung nach der Ausführung der SET-Anweisung einen Fehler, wird die Option festgelegt.
Die Optionen QUOTED_IDENTIFIER, PARSEONLY, OFFSETS und FIPS_FLAGGER sind Analysezeitoptionen. Alle anderen SET-Optionen sind Ausführungszeitoptionen.
SET QUOTED_IDENTIFIER- und SET ANSI_NULLS-Anweisungen, die innerhalb eines Batches oder einer gespeicherten Prozedur auftreten, wirken sich nicht auf den Batch oder die gespeicherte Prozedur aus. Stattdessen handelt es sich bei den Einstellungen, die für Anweisungen innerhalb des Batches oder der gespeicherten Prozedur verwendet werden, um Einstellungen, die wirksam sind, wenn der Batch oder die gespeicherte Prozedur erstellt wird.
Dauer von SET-Optionen
In diesem Abschnitt wird die Dauer von SET-Optionen beschrieben.
SET-Optionen, die von einem Benutzer in einem Skript festgelegt werden, gelten, bis sie zurückgesetzt werden oder bis die Sitzung des Benutzers mit dem Server beendet wird.
SET-Optionen, die innerhalb einer gespeicherten Prozedur oder eines Triggers festgelegt werden, gelten, bis sie innerhalb dieser gespeicherten Prozedur oder dem Trigger zurückgesetzt werden oder bis die Steuerung wieder an den Code zurückgegeben wird, der die gespeicherte Prozedur oder den Trigger aufrief.
Eine MARS-aktivierte Verbindung verwaltet eine Liste der standardmäßigen SET-Optionswerte. Wenn ein Batch unter dieser Verbindung ausgeführt wird, werden die standardmäßigen SET-Optionswerte in die Umgebung der Anforderung kopiert. Nach Beendigung des Batches wird die Umgebung wieder in den Sitzungsstandardwert kopiert. Auf diese Weise werden mehrere Batches, die gleichzeitig unter derselben Verbindung ausgeführt werden, in einer isolierten SET-Optionsumgebung ausgeführt.
Hinweis Wenn bei MARS-aktivierten Verbindungen mehrere Batches gleichzeitig ausgeführt werden und diese die Batchausführungsumgebung ändern, hängt die sich ergebende Standardumgebung für die Verbindung vom letzten ausgeführten Batch ab.
Wenn sie nicht explizit zurückgesetzt werden, gelten die SET-Optionswerte des gesamten Codes auf höherer Ebene innerhalb einer gespeicherten Prozedur oder eines Triggers.
SET-Optionen, die von einem Benutzer innerhalb eines dynamischen SQL-Batches festgelegt werden, gelten nur für die Dauer dieses Batches.
Wenn sie nicht explizit oder implizit zurückgesetzt werden, gelten die für eine Verbindung festgelegten SET-Optionen, nachdem eine Verbindung mit einer anderen Datenbank hergestellt wurde.
Hinweis Wenn ein Benutzer eine Verbindung mit einer Datenbank herstellt, werden einige Optionen möglicherweise automatisch auf ON festgelegt. Diese Einstellung basiert auf den Werten, die durch die vorherige Verwendung der Serveroption user options angegeben wurden, bzw. auf den Werten, die für alle ODBC- und OLE DB-Verbindungen gelten.
SET-Option als Abkürzung
Transact-SQL stellt die SET ANSI_DEFAULTS-Anweisung als Abkürzung zum Festlegen der folgenden ISO-92-Standardoptionen bereit:
SET ANSI_NULLS
SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_NULL_DFLT_ON
SET IMPLICIT_TRANSACTIONS
SET ANSI_PADDING
SET QUOTED_IDENTIFIER
SET ANSI_WARNINGS
Die SET ANSI_DEFAULTS-Anweisung setzt die Werte für diese Optionen zurück. Jede Einzeloption, die nach der Verwendung der SET ANSI_DEFAULTS-Anweisung festgelegt wird, setzt den vorher durch die SET ANSI_DEFAULTS-Anweisung festgelegten Wert außer Kraft.
Hinweis |
---|
SET ANSI_DEFAULTS legt nicht alle Optionen fest, die erforderlich sind, um den ISO-Standard zu erfüllen. |