Utilizzo delle opzioni di SQL Server

In MicrosoftSQL Server sono disponibili opzioni che influiscono sui risultati e sulle prestazioni delle istruzioni SQL. È possibile impostare tali opzioni come indicato di seguito.

  • Per l'impostazione di opzioni di configurazione a livello di istanza, utilizzare la stored procedure sp_configure.

  • Per l'impostazione di opzioni a livello di database, utilizzare l'istruzione relativa alle opzioni ALTER DATABASE SET.

  • Per l'impostazione del livello di compatibilità del database, utilizzare l'istruzione relativa al livello di compatibilità ALTER DATABASE.

  • Per l'impostazione di opzioni a livello di batch (opzioni SET), utilizzare le istruzioni SET, ad esempio SET ANSI_PADDING e SET ANSI_NULLS.

    [!NOTA]

    Nelle precedenti versioni di SQL Server e nelle connessioni in cui MARS (Multiple Active Result Sets) è disabilitato le opzioni a livello di batch sono denominate opzioni a livello di connessione.

  • Per l'impostazione di opzioni a livello di istruzione, ad esempio hint per la query, hint di tabella e hint di join, utilizzare le singole istruzioni Transact-SQL. Per ulteriori informazioni, vedere Hint (Transact-SQL).

Nelle applicazioni ODBC è possibile specificare opzioni di connessione che controllano alcune delle opzioni ANSI SET. Sia con il provider OLE DB per Native Client SQL Server che con il driver ODBC Native Client SQL Server diverse opzioni SET vengono configurate per impostazione predefinita.

Evitare di modificare le opzioni SET o di impostarle tramite istruzioni SET. È consigliabile impostare queste opzioni a livello della connessione tramite le proprietà di connessione ODBC o OLE DB. In alternativa è possibile modificare l'impostazione delle opzioni SET tramite la stored procedure sp_configure.

Con sp_configure è disponibile l'opzione user options, la quale consente di modificare i valori predefiniti di numerose opzioni SET. Sebbene sembri un'opzione di istanza, user options è un'opzione SET.

Gerarchia delle opzioni

Se un'opzione è supportata a più livelli, vengono rispettate le seguenti regole di priorità:

  1. Un'opzione di database ha la priorità su un'opzione di istanza.

  2. Un'opzione SET ha la priorità su un'opzione di database.

  3. Un hint ha la priorità su un'opzione SET.

[!NOTA]

Le opzioni SET impostate nell'ambito di un batch SQL dinamico hanno effetto solo nell'ambito del batch.

[!NOTA]

Le opzioni SET, ad esempio QUOTED_IDENTIFIER e ANSI_NULLS, sono persistenti con la definizione di stored procedure e pertanto hanno priorità su numerosi valori impostati esplicitamente.