SET ANSI_DEFAULTS (Transact-SQL)

 

THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

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

Topic link icon Transact-SQL-Syntaxkonventionen

-- Syntax for SQL Server  
  
SET ANSI_DEFAULTS { ON | OFF }  

-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  
  
SET ANSI_DEFAULTS ON;  

SET ANSI_DEFAULTS ist eine serverseitige Einstellung, die vom Client nicht verändert wird. Der Client verwaltet eigene Einstellungen. Diese Einstellungen sind standardmäßig das Gegenstück zur Servereinstellung. Benutzer sollten die Servereinstellung nicht ändern. Zum Ändern des Clientverhaltens sollten Benutzer 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_NULLSSET CURSOR_CLOSE_ON_COMMIT
SET ANSI_NULL_DFLT_ONSET IMPLICIT_TRANSACTIONS
SET ANSI_PADDINGSET 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 Verwenden von Indizes für berechnete Spalten und indizierte Sichten, müssen vier dieser Standardwerte (ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS und QUOTED_IDENTIFIER) auf ON festgelegt sein. Diese Standardwerte gehören zu den insgesamt sieben SET-Optionen, für die bestimmte Werte beim Erstellen und Ändern von Indizes für berechnete Spalten und indizierte Sichten zugewiesen werden müssen. Die anderen SET-Optionen lauten ARITHABORT (ON), CONCAT_NULL_YIELDS_NULL (ON) und NUMERIC_ROUNDABORT (OFF). Weitere Informationen zu den erforderlichen Einstellungen der SET-Option mit indizierten Sichten und Indizes für berechnete Spalten finden Sie unter "Überlegungen beim Sie mithilfe der SET-Anweisungen in SET-Anweisungen (Transact-SQL).

Die SQL Server Native Client ODBC-Treiber und SQL Server Native Client OLE DB-Anbieter für SQL Server "ANSI_DEFAULTS" automatisch auf ON festgelegt wird, wenn eine Verbindung herstellen. Treiber und Anbieter legen anschließend CURSOR_CLOSE_ON_COMMIT und IMPLICIT_TRANSACTIONS auf OFF fest. Die Einstellung OFF für SET CURSOR_CLOSE_ON_COMMIT und SET IMPLICIT_TRANSACTIONS kann 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. SET ANSI_DEFAULTS wird für Verbindungen von DB-Library-Anwendungen standardmäßig auf OFF festgelegt.

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

SET ANSI_NULLSSET ANSI_WARNINGS
SET ANSI_NULL_DFLT_ONSET CURSOR_CLOSE_ON_COMMIT
SET ANSI_PADDINGSET IMPLICIT_TRANSACTIONS

Erfordert die Mitgliedschaft in der public -Rolle.

Im folgenden Beispiel wird SET ANSI_DEFAULTS 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  

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)

Community-Beiträge

HINZUFÜGEN
Anzeigen: