Opzioni SET
Nella tabella seguente vengono elencate in ordine alfabetico le opzioni SET e le opzioni del server e del database corrispondenti supportate in Microsoft SQL Server.
Opzione SET |
Opzione del database |
Opzione del server |
Impostazione predefinita |
---|---|---|---|
Nessuna |
Nessuna |
Non applicabile |
|
ANSI_NULL_DEFAULT |
user options assegna un'impostazione predefinita |
OFF |
|
ANSI_NULLS |
user options assegna un'impostazione predefinita |
OFF |
|
ANSI_PADDING |
user options assegna un'impostazione predefinita |
ON |
|
ANSI_WARNINGS |
user options assegna un'impostazione predefinita |
OFF |
|
ARITHABORT |
user options assegna un'impostazione predefinita |
OFF |
|
Nessuna |
user options assegna un'impostazione predefinita |
OFF |
|
CONCAT_NULL_YIELDS_NULL |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
CURSOR_CLOSE ON_COMMIT |
user options assegna un'impostazione predefinita |
OFF |
|
Nessuna |
Nessuna |
7 |
|
Nessuna |
Nessuna |
mdy |
|
Nessuna |
Nessuna |
NORMAL |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
|
OFF |
|
Nessuna |
user options assegna un'impostazione predefinita |
OFF |
|
Nessuna |
Nessuna |
us_english |
|
Nessuna |
Nessuna |
Nessun limite |
|
Nessuna |
user options assegna un'impostazione predefinita |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
NUMERIC_ROUNDABORT |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
query governor cost limit |
OFF |
|
quoted identifier |
user options assegna un'impostazione predefinita |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
OFF |
|
Nessuna |
Nessuna |
n/d |
|
Nessuna |
Nessuna |
OFF |
Opzioni SET della fase di analisi e della fase di esecuzione
Il punto in cui viene applicata un'opzione SET varia a seconda che si tratti di un'opzione della fase di analisi o della fase di esecuzione. Le opzioni della fase di analisi vengono applicate durante l'analisi man mano che vengono rilevate nel testo e indipendentemente dalle istruzioni per il controllo di flusso. Le opzioni della fase di esecuzione vengono applicate durante l'esecuzione del codice in cui sono specificate. Se durante l'esecuzione si verifica un errore prima dell'esecuzione dell'istruzione SET, l'opzione non viene impostata. Se invece l'errore si verifica dopo l'esecuzione dell'istruzione SET, l'opzione viene impostata.
QUOTED_IDENTIFIER, PARSEONLY, OFFSETS e FIPS_FLAGGER sono opzioni della fase di analisi. Tutte le altre opzioni SET sono opzioni della fase di esecuzione.
Le istruzioni SET QUOTED_IDENTIFIER e SET ANSI_NULLS incluse in un batch o in una stored procedure non vengono applicate a tale batch o stored procedure. Le impostazioni utilizzate per istruzioni all'interno del batch o della stored procedure corrispondono alle impostazioni attive al momento della creazione del batch o della stored procedure.
Durata delle opzioni SET
In questa sezione viene descritta la durata delle opzioni SET.
Le opzioni SET impostate da un utente in uno script rimangono valide fino a quando non vengono reimpostate o fino al termine della sessione dell'utente nel server.
Le opzioni SET impostate in una stored procedure o in un trigger rimangono valide fino a quando non vengono reimpostate in tale stored procedure o trigger oppure fino a quando il controllo non viene restituito al codice che ha richiamato la stored procedure o il trigger.
Una connessione con supporto per MARS mantiene un elenco di valori predefiniti dell'opzione SET. Quando nell'ambito di tale connessione viene eseguito un batch, i valori predefiniti dell'opzione SET vengono copiati nell'ambiente della richiesta. Al termine del batch, nell'ambiente vengono nuovamente copiate le impostazioni predefinite della sessione. In questo modo, più batch in esecuzione nello stesso momento nell'ambito della stessa connessione vengono eseguiti in un ambiente isolato di opzioni SET.
Nota
Nelle connessioni con supporto per MARS, se più batch vengono eseguiti nello stesso momento e modificano l'ambiente di esecuzione del batch stesso, l'ambiente predefinito risultante per la connessione dipende dall'ultimo batch che completa l'esecuzione.
Se i valori dell'opzione SET non vengono reimpostati in modo esplicito, in una stored procedure o in un trigger vengono applicati i valori dell'opzione specificati nel codice di livello superiore.
Le opzioni SET impostate da un utente nell'ambito di un batch SQL dinamico rimangono valide solo per la durata del batch.
Se non vengono reimpostate in modo implicito o esplicito, le opzioni SET di una connessione rimangono valide anche dopo la connessione a un database diverso.
Nota
Si consideri inoltre che, quando un utente si connette a un database, è possibile che alcune opzioni vengano impostate automaticamente su ON in base ai valori specificati durante il precedente utilizzo dell'opzione del server user options o ai valori applicabili a tutte le connessioni ODBC e OLE DB.
Opzione SET abbreviata
In Transact-SQL è disponibile l'istruzione SET ANSI_DEFAULTS che rappresenta una scelta rapida per l'impostazione delle seguenti opzioni standard 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'istruzione SET ANSI_DEFAULTS consente di reimpostare i valori delle opzioni sopra elencate. Un'opzione impostata dopo l'esecuzione dell'istruzione in forma abbreviata ha la priorità rispetto al valore corrispondente impostato dall'istruzione abbreviata.
Nota
Tramite SET ANSI_DEFAULTS non vengono impostate tutte le opzioni richieste dallo standard ISO.