SET ANSI_DEFAULTS (Transact-SQL)

Gilt für:SQL ServerAzure SQL-Datenbank Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-Endpunkt in Microsoft FabricWarehouse in Microsoft Fabric

Steuert eine Gruppe von SQL Server-Einstellungen, die zusammen einen bestimmten Teil des ISO-Standardverhaltens angeben.

Transact-SQL-Syntaxkonventionen

Syntax

Syntax für SQL Server und serverlose SQL-Pools in Azure Synapse Analytics, Microsoft Fabric

SET ANSI_DEFAULTS { ON | OFF }

Syntax für Azure Synapse Analytics und Analytics-Plattformsystem (PDW)

SET ANSI_DEFAULTS ON

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.

Hinweise

ANSI_DEFAULTS ist eine serverseitige Einstellung, mit der sich das Verhalten für alle Clientverbindungen aktivieren lässt. Der Client fordert die Einstellung in der Regel bei der Initialisierung der Verbindung oder Sitzung an. Benutzer sollten die Servereinstellung nicht ändern.
Zum Ändern des Clientverhaltens sollten Benutzer die clientspezifischen Methoden wie SQL_COPT_SS_PRESERVE_CURSORS verwenden. Weitere Informationen finden Sie unter SQLSetConnectAttr.

Wird die Option aktiviert (ON), werden die folgenden ISO-Einstellungen aktiviert:

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

 

Diese SET-Optionen gemäß ISO-Standard definieren zusammen die Abfrageverarbeitungsumgebung für die Dauer der Arbeitssitzung des Benutzers oder für den Zeitraum, in dem ein Trigger oder eine gespeicherte Prozedur ausgeführt wird. Die aufgeführten SET-Optionen schließen jedoch nicht alle Optionen ein, die erforderlich wären, um dem ISO-Standard zu entsprechen.

Beim Umgang mit Indizes für berechnete Spalten, gefilterte Indizes und indizierte Ansichten müssen vier dieser Standardwerte (ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGSund QUOTED_IDENTIFIER) auf EIN festgelegt werden. Diese Standardwerte gehören zu sieben SET-Optionen, die den erforderlichen Werten zugewiesen werden müssen, wenn Sie Indizes für berechnete Spalten, gefilterte Indizes und indizierte Ansichten erstellen und ändern. Die anderen SET-Optionen sind ARITHABORT (ON), CONCAT_NULL_YIELDS_NULL (ON) und NUMERIC_ROUNDABORT (OFF) (Aus). Weitere Informationen zu den erforderlichen SET-Optionseinstellungen mit indizierten Ansichten, gefilterten Indizes und Indizes für berechnete Spalten finden Sie unter Überlegungen zur Verwendung der SET-Anweisungen.

Der SQL Server Native Client-ODBC-Treiber und der SQL Server Native Client-OLE DB-Anbieter für SQL Server legen ANSI_DEFAULTS beim Herstellen einer Verbindung automatisch auf ON fest. Treiber und Anbieter legen anschließend CURSOR_CLOSE_ON_COMMIT und IMPLICIT_TRANSACTIONS auf OFF fest. Die OFF-Einstellungen für CURSOR_CLOSE_ON_COMMIT und IMPLICIT_TRANSACTIONS können in ODBC-Datenquellen, in ODBC-Verbindungsattributen oder in OLE DB-Verbindungseigenschaften konfiguriert werden, die in der Anwendung festgelegt werden, bevor die Verbindung mit SQL Server hergestellt wird. Der Standardwert von ANSI_DEFAULTS lautet OFF für Verbindungen von DB-Library-Anwendungen.

Wenn SET ANSI_DEFAULTS ausgeführt wird, wird QUOTED_IDENTIFIER zur Analysezeit festgelegt, und die folgenden Optionen werden zur Ausführungszeit festgelegt:

SET ANSI_NULLS

SET ANSI_WARNINGS

SET ANSI_NULL_DFLT_ON

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_PADDING

SET IMPLICIT_TRANSACTIONS

Berechtigungen

Erfordert die Mitgliedschaft in der public -Rolle.

Beispiele

Im folgenden Beispiel wird ANSI_DEFAULTS auf ON festgelegt, und die DBCC USEROPTIONS-Anweisung wird zum Anzeigen der betroffenen Einstellungen verwendet.

-- SET ANSI_DEFAULTS ON.  
SET ANSI_DEFAULTS ON;  
GO  

-- Display the current settings.  
DBCC USEROPTIONS;  
GO 

-- SET ANSI_DEFAULTS OFF.  
SET ANSI_DEFAULTS OFF;  
GO  

Weitere Informationen

DBCC USEROPTIONS (Transact-SQL)
SET-Anweisungen (Transact-SQL)
SET ANSI_NULL_DFLT_ON (Transact-SQL)
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL)
SET IMPLICIT_TRANSACTIONS (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL)