SET ANSI_DEFAULTS (Transact-SQL)
Gilt für: SQL Server
Azure SQL verwaltete Instanz
Azure Synapse Analytics Platform System (PDW)
-SQL-Analyseendpunkt
in Microsoft Fabric
Warehouse in Microsoft Fabric 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_WARNINGS
und 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)