SET-Optionen

Die folgende Tabelle enthält eine alphabetische Liste mit SET-Optionen sowie die entsprechenden Datenbank- und Serveroptionen, die in Microsoft SQL Server unterstützt werden.

SET-Option

Datenbankoption

Serveroption

Standardeinstellung

SET ANSI_DEFAULTS (Transact-SQL)

Keine

Keine

Nicht zutreffend

SET ANSI_NULL_DFLT_OFF (Transact-SQL)

SET ANSI_NULL_DFLT_ON (Transact-SQL)

ANSI_NULL_DEFAULT

user options weist einen Standardwert zu

OFF

SET ANSI_NULLS (Transact-SQL)

ANSI_NULLS

user options weist einen Standardwert zu

OFF

SET ANSI_PADDING (Transact-SQL)

ANSI_PADDING

user options weist einen Standardwert zu

ON

SET ANSI_WARNINGS (Transact-SQL)

ANSI_WARNINGS

user options weist einen Standardwert zu

OFF

SET ARITHABORT (Transact-SQL)

ARITHABORT

user options weist einen Standardwert zu

OFF

SET ARITHIGNORE (Transact-SQL)

Keine

user options weist einen Standardwert zu

OFF

SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

CONCAT_NULL_YIELDS_NULL

Keine

OFF

SET CONTEXT_INFO (Transact-SQL)

Keine

Keine

OFF

SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL)

CURSOR_CLOSE ON_COMMIT

user options weist einen Standardwert zu

OFF

SET DATEFIRST (Transact-SQL)

Keine

Keine

7

SET DATEFORMAT (Transact-SQL)

Keine

Keine

dmy

SET DEADLOCK_PRIORITY (Transact-SQL)

Keine

Keine

NORMAL

SET FIPS_FLAGGER (Transact-SQL)

Keine

Keine

OFF

SET FMTONLY (Transact-SQL)

Keine

Keine

OFF

SET FORCEPLAN (Transact-SQL)

Keine

Keine

OFF

SET IDENTITY_INSERT (Transact-SQL)

Keine

 

OFF

SET IMPLICIT_TRANSACTIONS (Transact-SQL)

Keine

user options weist einen Standardwert zu

OFF

SET LANGUAGE (Transact-SQL)

Keine

Keine

Deutsch

SET LOCK_TIMEOUT (Transact-SQL)

Keine

Keine

Keine Begrenzung

SET NOCOUNT (Transact-SQL)

Keine

user options weist einen Standardwert zu

OFF

SET NOEXEC (Transact-SQL)

Keine

Keine

OFF

SET NUMERIC_ROUNDABORT (Transact-SQL)

NUMERIC_ROUNDABORT

Keine

OFF

SET OFFSETS (Transact-SQL)

Keine

Keine

OFF

SET PARSEONLY (Transact-SQL)

Keine

Keine

OFF

SET QUERY_GOVERNOR_COST_LIMIT (Transact-SQL)

Keine

query governor cost limit

OFF

SET QUOTED_IDENTIFIER (Transact-SQL)

quoted identifier

user options weist einen Standardwert zu

OFF

SET REMOTE_PROC_TRANSACTIONS (Transact-SQL)

Keine

Keine

OFF

SET ROWCOUNT (Transact-SQL)

Keine

Keine

OFF

SET SHOWPLAN_ALL (Transact-SQL)

Keine

Keine

OFF

SET SHOWPLAN_TEXT (Transact-SQL)

Keine

Keine

OFF

SET SHOWPLAN_XML (Transact-SQL)

Keine

Keine

OFF

SET STATISTICS IO (Transact-SQL)

Keine

Keine

OFF

SET STATISTICS PROFILE (Transact-SQL)

Keine

Keine

OFF

SET STATISTICS TIME (Transact-SQL)

Keine

Keine

OFF

SET STATISTICS XML (Transact-SQL)

Keine

Keine

OFF

SET TEXTSIZE (Transact-SQL)

Keine

Keine

OFF

SET TRANSACTION ISOLATION LEVEL (Transact-SQL)

Keine

Keine

N/V

SET XACT_ABORT (Transact-SQL)

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.

    HinweisHinweis

    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.

    HinweisHinweis

    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.

HinweisHinweis

SET ANSI_DEFAULTS legt nicht alle Optionen fest, die erforderlich sind, um den ISO-Standard zu erfüllen.