SET ANSI_DEFAULTS (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

Controlla un gruppo di impostazioni di SQL Server che specificano collettivamente alcune funzionalità standard di ISO.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

Sintassi per SQL Server e Pool SQL serverless in Azure Synapse Analytics

SET ANSI_DEFAULTS { ON | OFF }

Sintassi per Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)

SET ANSI_DEFAULTS ON

Nota

Per visualizzare la sintassi Transact-SQL per SQL Server 2014 e versioni precedenti, vedere Documentazione delle versioni precedenti.

Osservazioni

ANSI_DEFAULTS è un'impostazione lato server che consente di abilitare il comportamento per tutte le connessioni client. Il client richiede in genere l'impostazione al momento dell'inizializzazione della connessione o della sessione. L'impostazione del server non deve essere modificata dagli utenti.
Per modificare il comportamento del client, gli utenti devono usare metodi specifici del client come SQL_COPT_SS_PRESERVE_CURSORS. Per altre informazioni, vedere SQLSetConnectAttr.

Quando è attivata (ON), questa opzione attiva le seguenti impostazioni di ISO:

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

 

L'insieme di queste opzioni SET ISO standard definisce l'ambiente di elaborazione della query per l'intera durata della sessione di lavoro dell'utente o dell'esecuzione di un trigger o di una stored procedure. Queste opzioni SET tuttavia non includono tutte le opzioni necessarie per la conformità allo standard ISO.

Quando si gestiscono indici su colonne calcolate e viste indicizzate, quattro di queste impostazioni predefinite (ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGSe QUOTED_IDENTIFIER) devono essere impostate su ON. Queste opzioni predefinite fanno parte delle sette opzioni SET a cui devono essere assegnati i valori richiesti durante la creazione e la modifica degli indici in colonne calcolate e viste indicizzate. Le altre opzioni SET sono ARITHABORT (ON), CONCAT_NULL_YIELDS_NULL (ON) e NUMERIC_ROUNDABORT (OFF). Per altre informazioni sulle impostazioni dell'opzione SET necessarie per viste indicizzate e indici nelle colonne calcolate, vedere Considerazioni sull'uso delle istruzioni SET.

Il driver ODBC di SQL Server Native Client e il provider OLE DB di SQL Server Native Client per SQL Server impostano automaticamente l'opzione ANSI_DEFAULTS su ON al momento della connessione. Il driver e il provider impostano quindi le opzioni CURSOR_CLOSE_ON_COMMIT e IMPLICIT_TRANSACTIONS su OFF. Le impostazioni OFF per CURSOR_CLOSE_ON_COMMIT e IMPLICIT_TRANSACTIONS possono essere configurate nelle origini dei dati ODBC, negli attributi di connessione ODBC o nelle proprietà di connessione OLE DB impostate nell'applicazione prima della connessione a SQL Server. L'impostazione predefinita per ANSI_DEFAULTS è OFF per le connessioni da applicazioni DB-Library.

Quando si esegue SET ANSI_DEFAULTS, l'opzione QUOTED_IDENTIFIER viene impostata in fase di analisi e le opzioni seguenti vengono impostate in fase di esecuzione:

SET ANSI_NULLS

SET ANSI_WARNINGS

SET ANSI_NULL_DFLT_ON

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_PADDING

SET IMPLICIT_TRANSACTIONS

Autorizzazioni

È richiesta l'appartenenza al ruolo public .

Esempi

Nell'esempio seguente l'opzione ANSI_DEFAULTS viene impostata su ON e viene usata l'istruzione DBCC USEROPTIONS per visualizzare le impostazioni interessate.

-- 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  

Vedere anche

DBCC USEROPTIONS (Transact-SQL)
Istruzioni SET (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)