Condividi tramite


SET ANSI_DEFAULTS (Transact-SQL)

Si applica a: SQL Server Istanza gestita di SQL di Azure endpoint di analisi SQL di Azure Synapse Analytics Platform System (PDW) in Microsoft Fabric Warehouse in Microsoft Fabric

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

Convenzioni relative alla sintassi Transact-SQL

Sintassi

Sintassi per SQL Server, pool SQL serverless in Azure Synapse Analytics, Microsoft Fabric

SET ANSI_DEFAULTS { ON | OFF }

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

SET ANSI_DEFAULTS ON

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, indici filtrati e viste indicizzate, quattro di queste impostazioni predefinite (ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGSe QUOTED_IDENTIFIER) devono essere impostate su ON. Queste impostazioni predefinite sono incluse tra sette opzioni SET a cui è necessario assegnare i valori necessari durante la creazione e la modifica di indici in colonne calcolate, indici filtrati e viste indicizzate. Le altre opzioni SET sono ARITHABORT (ON), CONCAT_NULL_YIELDS_NULL (ON) e NUMERIC_ROUNDABORT (OFF). Per altre informazioni sulle impostazioni delle opzioni SET necessarie con viste indicizzate, indici filtrati e indici sulle colonne calcolate, vedere Considerazioni sull'utilizzo 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 ANSI_NULLS 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  

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