Opzioni ALTER DATABASE SET (Transact-SQL)ALTER DATABASE SET Options (Transact-SQL)

Imposta le opzioni del database in SQL ServerSQL Server, Database SQL di AzureAzure SQL Database e SQL Data WarehouseSQL Data Warehouse.Sets database options in SQL ServerSQL Server, Database SQL di AzureAzure SQL Database and SQL Data WarehouseSQL Data Warehouse. Per altre opzioni di ALTER DATABASE, vedere ALTER DATABASE.For other ALTER DATABASE options, see ALTER DATABASE.

Fare clic su una delle schede seguenti per la sintassi, gli argomenti, i commenti, le autorizzazioni e gli esempi per la specifica versione di SQL in uso.Click one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular SQL version with which you're working.

Per altre informazioni sulle convenzioni di sintassi, vedere Convenzioni della sintassi Transact-SQL.For more information about the syntax conventions, see Transact-SQL Syntax Conventions.

Fare clic su un prodotto.Click a product!

Nella riga seguente fare clic sul nome di prodotto a cui si è interessati.In the following row, click whichever product name you're interested in. Viene visualizzato contenuto diverso in questa pagina Web, appropriato per il prodotto su cui si fa clic.The click displays different content here on this webpage, appropriate for whichever product you click.

** * SQL Server * **  * SQL Server *   Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
Istanza gestita
database SQL
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse

 

SQL ServerSQL Server

Il mirroring del database, Gruppi di disponibilità Always OnAlways On availability groups e i livelli di compatibilità sono opzioni SET ma, poiché richiedono lunghe descrizioni, vengono illustrati in articoli distinti.Database mirroring, Gruppi di disponibilità Always OnAlways On availability groups, and compatibility levels are SET options but are described in separate articles because of their length. Per altre informazioni, vedere Mirroring del database ALTER DATABASE, ALTER DATABASE SET HADR e Livello di compatibilità ALTER DATABASE.For more information, see ALTER DATABASE Database Mirroring, ALTER DATABASE SET HADR, and ALTER DATABASE Compatibility Level.

Le configurazioni con ambito database vengono usate per impostare diverse configurazioni di database a livello di singolo database.Database scoped configurations are used to set several database configurations at the individual database level. Per altre informazioni, vedere ALTER DATABASE SCOPED CONFIGURATION.For more information, see ALTER DATABASE SCOPED CONFIGURATION.

Nota

Molte opzioni SET di database possono essere configurate per la sessione corrente tramite Istruzioni SET e spesso vengono configurate dalle applicazioni durante la connessione.Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. Le opzioni di impostazione a livello di sessione sostituiscono i valori ALTER DATABASE SET.Session level set options override the ALTER DATABASE SET values. Le opzioni di database descritte di seguito sono valori che è possibile impostare per le sessioni che non prevedono esplicitamente altri valori di opzioni SET.The database options described below are values that can be set for sessions that don't explicitly provide other set option values.

SintassiSyntax

ALTER DATABASE { database_name | CURRENT }
SET
{
    <option_spec> [ ,...n ] [ WITH <termination> ]
}

<option_spec> ::=
{
    <auto_option>
  | <automatic_tuning_option>
  | <change_tracking_option>
  | <containment_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <external_access_option>
  | FILESTREAM ( <FILESTREAM_option> )
  | <HADR_options>
  | <mixed_page_allocation_option>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <remote_data_archive_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;

<auto_option> ::=
{
    AUTO_CLOSE { ON | OFF }
  | AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
  AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { ON | OFF } )
}

<change_tracking_option> ::=
{
  CHANGE_TRACKING
   {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
   }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<containment_option> ::=
   CONTAINMENT = { NONE | PARTIAL }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
  | CURSOR_DEFAULT { LOCAL | GLOBAL }
}

<database_mirroring_option>
  ALTER DATABASE Database Mirroring

<date_correlation_optimization_option> ::=
    DATE_CORRELATION_OPTIMIZATION { ON | OFF }

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF | SUSPEND | RESUME }

<db_state_option> ::=
    { ONLINE | OFFLINE | EMERGENCY }

<db_update_option> ::=
    { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
    { SINGLE_USER | RESTRICTED_USER | MULTI_USER }

<delayed_durability_option> ::=
    DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<external_access_option> ::=
{
    DB_CHAINING { ON | OFF }
  | TRUSTWORTHY { ON | OFF }
  | DEFAULT_FULLTEXT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | DEFAULT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | NESTED_TRIGGERS = { OFF | ON }
  | TRANSFORM_NOISE_WORDS = { OFF | ON }
  | TWO_DIGIT_YEAR_CUTOFF = { 1753, ..., 2049, ..., 9999 }
}
<FILESTREAM_option> ::=
{
    NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL
  | DIRECTORY_NAME = <directory_name>
}
<HADR_options> ::=
    ALTER DATABASE SET HADR

<mixed_page_allocation_option> ::=
    MIXED_PAGE_ALLOCATION { OFF | ON }

<parameterization_option> ::=
    PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
    QUERY_STORE
    {
          = OFF
        | = ON [ ( <query_store_option_list> [,...n] ) ]
        | ( < query_store_option_list> [,...n] )
        | CLEAR [ ALL ]
    }
}

<query_store_option_list> ::=
{
      OPERATION_MODE = { READ_WRITE | READ_ONLY }
    | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
    | DATA_FLUSH_INTERVAL_SECONDS = number
    | MAX_STORAGE_SIZE_MB = number
    | INTERVAL_LENGTH_MINUTES = number
    | SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
    | QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
    | MAX_PLANS_PER_QUERY = number
    | WAIT_STATS_CAPTURE_MODE = { ON | OFF }
    | QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}

<query_capture_policy_option_list> :: =
{
    STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
    | EXECUTION_COUNT = number
    | TOTAL_COMPILE_CPU_TIME_MS = number
    | TOTAL_EXECUTION_CPU_TIME_MS = number      
}

<recovery_option> ::=
{
    RECOVERY { FULL | BULK_LOGGED | SIMPLE }
  | TORN_PAGE_DETECTION { ON | OFF }
  | PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
}

<remote_data_archive_option> ::=
{
    REMOTE_DATA_ARCHIVE =
    {
        ON ( SERVER = <server_name> ,
                  {CREDENTIAL = <db_scoped_credential_name>
                     | FEDERATED_SERVICE_ACCOUNT = ON | OFF
                  }
               )
      | OFF
    }
}

<service_broker_option> ::=
{
    ENABLE_BROKER
  | DISABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS  
  | HONOR_BROKER_PRIORITY { ON | OFF}
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT {ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = {ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<target_recovery_time_option> ::=
    TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

<termination>::=
{
    ROLLBACK AFTER number [ SECONDS ]
  | ROLLBACK IMMEDIATE
  | NO_WAIT
}
<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }

ArgomentiArguments

database_name database_name
Nome del database da modificare.Is the name of the database to be modified.

CURRENTCURRENT
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Esegue l'azione nel database corrente.Runs the action in the current database. CURRENT non è supportato per tutte le opzioni in tutti i contesti.CURRENT is not supported for all options in all contexts. In caso di errore di CURRENT, specificare il nome del database.If CURRENT fails, provide the database name.

<auto_option> ::=<auto_option> ::=

Consente di controllare le opzioni automatiche.Controls automatic options.

AUTO_CLOSE { ON | OFF }AUTO_CLOSE { ON | OFF }
ONON
Il database viene chiuso normalmente e le relative risorse vengono rilasciate dopo la disconnessione dell'ultimo utente.The database is shut down cleanly and its resources are freed after the last user exits.

Il database viene riaperto automaticamente quando un utente tenta di usarlo nuovamente,The database automatically reopens when a user tries to use the database again. ad esempio, tramite l'esecuzione di un'istruzione USE database_name.For example, by issuing a USE database_name statement. Se l'opzione AUTO_CLOSE è impostata su ON, è possibile che il database venga arrestato correttamente.The database may shut down cleanly with AUTO_CLOSE set to ON. In questo caso, non viene riaperto finché un utente non prova a usarlo al successivo riavvio del Motore di databaseDatabase Engine.If so, the database doesn't reopen until a user tries to use the database the next time the Motore di databaseDatabase Engine restarts.

OFFOFF
Il database rimane aperto dopo la disconnessione dell'ultimo utente.The database remains open after the last user exits.

L'opzione AUTO_CLOSE è utile per i database desktop perché consente di gestire i file di database come normali file.The AUTO_CLOSE option is useful for desktop databases because it allows for database files to be managed as regular files. I file possono essere spostati, copiati per creare backup o anche inviati tramite posta elettronica ad altri utenti.They can be moved, copied to make backups, or even e-mailed to other users. Il processo AUTO_CLOSE è asincrono. Operazioni ripetute di apertura e chiusura del database non comportano una riduzione delle prestazioni.The AUTO_CLOSE process is asynchronous; repeatedly opening and closing the database doesn't reduce performance.

Nota

L'opzione AUTO_CLOSE non è disponibile in un database indipendente o nel Database SQLSQL Database.The AUTO_CLOSE option isn't available in a Contained Database or on Database SQLSQL Database. Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_close_on nella vista del catalogo sys.databases oppure la proprietà IsAutoClose della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the is_auto_close_on column in the sys.databases catalog view or the IsAutoClose property of the DATABASEPROPERTYEX function.

Se l'opzione AUTO_CLOSE è impostata su ON, alcune colonne nella vista del catalogo sys.databases e della funzione DATABASEPROPERTYEX restituiranno NULL perché il database non è disponibile per il recupero dei dati.When AUTO_CLOSE is ON, some columns in the sys.databases catalog view and DATABASEPROPERTYEX function will return NULL because the database is unavailable to retrieve the data. Per risolvere questo problema, eseguire un'istruzione USE per aprire il database.To resolve this, execute a USE statement to open the database.

Per il mirroring del database è necessario che AUTO_CLOSE sia OFF.Database mirroring requires AUTO_CLOSE OFF.

Quando il database è impostato su AUTOCLOSE = ON, un'operazione che avvia una chiusura automatica del database comporta la cancellazione della cache dei piani per l'istanza di SQL ServerSQL Server.When the database is set to AUTOCLOSE = ON, an operation that initiates an automatic database shutdown clears the plan cache for the instance of SQL ServerSQL Server. La cancellazione della cache dei piani comporta la ricompilazione di tutti i piani di esecuzione successivi e può causare un peggioramento improvviso e temporaneo delle prestazioni di esecuzione delle query.Clearing the plan cache causes a recompilation of all subsequent execution plans and can cause a sudden, temporary decrease in query performance. In SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 2 e versioni successive il log degli errori di SQL ServerSQL Server contiene il messaggio informativo seguente per ogni archivio cache cancellato nella cache dei piani: "SQL ServerSQL Server ha rilevato %d occorrenza/e di scaricamento dell'archivio cache '%s' (parte della cache dei piani) a causa di operazioni di manutenzione o riconfigurazione del database".In SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 2 and higher, for each cleared cachestore in the plan cache, the SQL ServerSQL Server error log contains the following informational message: " SQL ServerSQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations". Questo messaggio viene registrato ogni cinque minuti per tutta la durata dello scaricamento della cache.This message is logged every five minutes as long as the cache is flushed within that time interval.

AUTO_CREATE_STATISTICS { ON | OFF }AUTO_CREATE_STATISTICS { ON | OFF }
ONON
Query Optimizer crea statistiche per colonne singole nei predicati di query, in base alle esigenze, per migliorare i piani di query e le prestazioni di esecuzione delle query.The Query Optimizer creates statistics on single columns in query predicates, as necessary, to improve query plans and query performance. Queste statistiche per colonne singole vengono create quando Query Optimizer compila le query.These single-column statistics are created when the Query Optimizer compiles queries. Tali statistiche vengono create solo sulle colonne che ancora non sono le prime colonne di un oggetto statistiche esistente.The single-column statistics are created only on columns that are not already the first column of an existing statistics object.

Il valore predefinito è ON.The default is ON. È consigliabile usare l'impostazione predefinita per la maggior parte dei database.We recommend that you use the default setting for most databases.

OFFOFF
Query Optimizer non crea statistiche su colonne singole nei predicati di query durante la compilazione delle query.The Query Optimizer doesn't create statistics on single columns in query predicates when it is compiling queries. L'impostazione di questa opzione su OFF può determinare piani di query e prestazioni di esecuzione delle query non ottimali.Setting this option to OFF can cause suboptimal query plans and degraded query performance.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_create_stats_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_create_stats_on column in the sys.databases catalog view. oppure la proprietà IsAutoCreateStatistics della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

Per altre informazioni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

INCREMENTAL = ON | OFFINCREMENTAL = ON | OFF
Si applica a: SQL ServerSQL Server (da SQL Server 2014 (12.x)SQL Server 2014 (12.x) a SQL Server 2017SQL Server 2017) e Database SQL di AzureAzure SQL DatabaseApplies to: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017) and Database SQL di AzureAzure SQL Database

Imposta AUTO_CREATE_STATISTICS su ON e INCREMENTAL su ON.Set AUTO_CREATE_STATISTICS to ON, and set INCREMENTAL to ON. Questa impostazione crea automaticamente statistiche incrementali ogni volta che sono supportate.This setting creates automatically created stats as incremental whenever incremental stats are supported. Il valore predefinito è OFF.The default value is OFF. Per altre informazioni, vedere CREATE STATISTICS.For more information, see CREATE STATISTICS.

AUTO_SHRINK { ON | OFF }AUTO_SHRINK { ON | OFF }
ONON
I file di database vengono compattati periodicamente, se necessario.The database files are candidates for periodic shrinking.

È possibile compattare automaticamente sia i file di dati sia i file di log.Both data file and log files can be automatically shrunk. AUTO_SHRINK riduce le dimensioni del log delle transazioni solo se per il database è impostato il modello di recupero con registrazione minima oppure se viene eseguito il backup del log.AUTO_SHRINK reduces the size of the transaction log only if you set the database to SIMPLE recovery model or if you back up the log. Se questa opzione è impostata su OFF, i file di database non vengono compattati automaticamente durante i controlli periodici per verificare la presenza di spazio inutilizzato.When set to OFF, the database files aren't automatically shrunk during periodic checks for unused space.

Con l'opzione AUTO_SHRINK i file vengono compattati quando più del 25% dello spazio del file risulta inutilizzato.The AUTO_SHRINK option causes files to be shrunk when more than 25 percent of the file contains unused space. L'opzione causa il compattamento del file in una di due dimensioni,The option causes the file to shrink to one of two sizes. ossia la più grande tra:It shrinks to whichever is larger:

  • Le dimensioni in cui il 25% del file è costituito da spazio inutilizzatothe size where 25 percent of the file is unused space
  • Le dimensioni del file quando è stato creatothe size of the file when it was created

Non è possibile compattare un database di sola lettura.You can't shrink a read-only database.

OFFOFF
I file di database non vengono compattati automaticamente durante i controlli periodici per la presenza di spazio inutilizzato.The database files are not automatically shrunk during periodic checks for unused space.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_shrink_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_shrink_on column in the sys.databases catalog view. oppure la proprietà IsAutoShrink della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoShrink property of the DATABASEPROPERTYEX function.

Nota

L'opzione AUTO_SHRINK non è disponibile in un database indipendente.The AUTO_SHRINK option isn't available in a Contained Database.

AUTO_UPDATE_STATISTICS { ON | OFF }AUTO_UPDATE_STATISTICS { ON | OFF }
ONON
Specifica che Query Optimizer aggiorna le statistiche quando queste vengono usate da una query e quando potrebbero non essere aggiornate.Specifies that the Query Optimizer updates statistics when they're used by a query and when they might be out-of-date. Le statistiche diventano obsolete in seguito a operazioni di inserimento, aggiornamento, eliminazione o unione che modificano la distribuzione dei dati nella tabella o nella vista indicizzata.Statistics become out-of-date after insert, update, delete, or merge operations change the data distribution in the table or indexed view. Query Optimizer determina che le statistiche potrebbero non essere aggiornate contando il numero di modifiche apportate ai dati dopo l'ultimo aggiornamento delle statistiche e confrontando il numero di modifiche con una sogliaThe Query Optimizer determines when statistics might be out-of-date by counting the number of data modifications since the last statistics update and comparing the number of modifications to a threshold. basata sul numero di righe nella tabella o nella vista indicizzata.The threshold is based on the number of rows in the table or indexed view.

Query Optimizer controlla la presenza di statistiche non aggiornate prima di compilare una query e di eseguire un piano di query memorizzato nella cache.The Query Optimizer checks for out-of-date statistics before it compiles a query and it runs a cached query plan. Usa le colonne, le tabelle e le viste indicizzate nel predicato di query per determinare quali statistiche potrebbero non essere aggiornate.The Query Optimizer uses the columns, tables, and indexed views in the query predicate to determine which statistics might be out-of-date. Query Optimizer verifica questa possibilità prima di compilare una query.The Query Optimizer determines this information before it compiles a query. Prima di eseguire un piano di query memorizzato nella cache, il Motore di databaseDatabase Engine verifica che tale piano faccia riferimento alle statistiche aggiornate.Before executing a cached query plan, the Motore di databaseDatabase Engine verifies that the query plan references up-to-date statistics.

L'opzione AUTO_UPDATE_STATISTICS_ASYNC si applica alle statistiche create per indici, colonne singole nei predicati di query e statistiche create con l'istruzione CREATE STATISTICS.The AUTO_UPDATE_STATISTICS option applies to statistics created for indexes, single-columns in query predicates, and statistics that are created by using the CREATE STATISTICS statement. Questa opzione si applica anche alle statistiche filtrate.This option also applies to filtered statistics.

Il valore predefinito è ON.The default is ON. È consigliabile usare l'impostazione predefinita per la maggior parte dei database.We recommend that you use the default setting for most databases.

Usare l'opzione AUTO_UPDATE_STATISTICS_ASYNC per specificare se le statistiche vengono aggiornate in modo sincrono o asincrono.Use the AUTO_UPDATE_STATISTICS_ASYNC option to specify whether the statistics are updated synchronously or asynchronously.

OFFOFF
Specifica che Query Optimizer non aggiorna le statistiche quando queste vengono usate da una querySpecifies that the Query Optimizer doesn't update statistics when they're used by a query. né quando potrebbero essere non aggiornate.The Query Optimizer also doesn't update statistics when they might be out-of-date. L'impostazione di questa opzione su OFF può determinare piani di query e prestazioni di esecuzione delle query non ottimali.Setting this option to OFF can cause suboptimal query plans and degraded query performance.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_update_stats_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_update_stats_on column in the sys.databases catalog view. oppure la proprietà IsAutoUpdateStatistics della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoUpdateStatistics property of the DATABASEPROPERTYEX function.

Per altre informazioni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ONON
Specifica che gli aggiornamenti delle statistiche per l'opzione AUTO_UPDATE_STATISTICS sono asincroni.Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are asynchronous. Query Optimizer non attende il completamento degli aggiornamenti delle statistiche per compilare le query.The Query Optimizer doesn't wait for statistics updates to complete before it compiles queries.

L'impostazione di questa opzione su ON non produce alcun effetto, a meno che AUTO_UPDATE_STATISTICS non sia impostata su ON.Setting this option to ON has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

Per impostazione predefinita, l'opzione AUTO_UPDATE_STATISTICS_ASYNC è impostata su OFF. Query Optimizer aggiorna pertanto le statistiche in modo sincrono.By default, the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF, and the Query Optimizer updates statistics synchronously.

OFFOFF
Specifica che gli aggiornamenti delle statistiche per l'opzione AUTO_UPDATE_STATISTICS sono sincroni.Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are synchronous. Query Optimizer attende il completamento degli aggiornamenti delle statistiche per compilare le query.The Query Optimizer waits for statistics updates to complete before it compiles queries.

L'impostazione di questa opzione su OFF non produce alcun effetto, a meno che AUTO_UPDATE_STATISTICS non sia impostata su ON.Setting this option to OFF has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_update_stats_async_on nella vista del catalogo sys.databases.You can determine this option's status by examining the is_auto_update_stats_async_on column in the sys.databases catalog view.

Per altre informazioni su quando usare gli aggiornamenti delle statistiche sincroni o asincroni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information that describes when to use synchronous or asynchronous statistics updates, see the section "Using the Database-Wide Statistics Options" in Statistics.

<automatic_tuning_option> ::= <automatic_tuning_option> ::=
Si applica a: SQL ServerSQL Server (a partire da SQL Server 2017 (14.x)SQL Server 2017 (14.x))Applies to: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x))

Abilita o disabilita l'opzione di FORCE_LAST_GOOD_PLAN ottimizzazione automatica.Enables or disables FORCE_LAST_GOOD_PLAN automatic tuning option.

FORCE_LAST_GOOD_PLAN = { ON | OFF }FORCE_LAST_GOOD_PLAN = { ON | OFF }
ONON
Il Motore di databaseDatabase Engine forza automaticamente l'ultimo piano adeguato noto presente nelle query Transact-SQLTransact-SQL nel caso in cui il piano SQL comprometta le prestazioni.The Motore di databaseDatabase Engine automatically forces the last known good plan on the Transact-SQLTransact-SQL queries where new SQL plan causes performance regressions. Il Motore di databaseDatabase Engine continua a monitorare le prestazioni delle query Transact-SQLTransact-SQL usando il piano forzato.The Motore di databaseDatabase Engine continuously monitors query performance of the Transact-SQLTransact-SQL query with the forced plan.

Se si rilevano miglioramenti delle prestazioni, il Motore di databaseDatabase Engine continuerà a usare l'ultimo piano adeguato noto.If there are performance gains, the Motore di databaseDatabase Engine will keep using last known good plan. Se non si rilevano miglioramenti delle prestazioni, il Motore di databaseDatabase Engine creerà un nuovo piano SQL.If performance gains are not detected, the Motore di databaseDatabase Engine will produce a new SQL plan. L'istruzione avrà esito negativo se Query Store non è abilitato o se non è in modalità di lettura/scrittura.The statement will fail if Query Store isn't enabled or if it isn't in Read-Write mode.

OFFOFF
Il Motore di databaseDatabase Engine segnala potenziali regressioni di prestazioni delle query causate da modifiche apportate al piano SQL nella vista sys.dm_db_tuning_recommendations.The Motore di databaseDatabase Engine reports potential query performance regressions caused by SQL plan changes in sys.dm_db_tuning_recommendations view. I consigli qui segnalati non vengono tuttavia applicati automaticamente.However, these recommendations are not automatically applied. È possibile visualizzare i consigli attivi e risolvere i problemi identificati applicando gli script Transact-SQLTransact-SQL disponibili nella vista.User can monitor active recommendations and fix identified problems by applying Transact-SQLTransact-SQL scripts that are shown in the view. Si tratta del valore predefinito.This is the default value.

<change_tracking_option> ::= <change_tracking_option> ::=
Si applica a: SQL ServerSQL Server e Database SQLSQL DatabaseApplies to: SQL ServerSQL Server and Database SQLSQL Database

Controlla le opzioni di rilevamento delle modifiche.Controls change tracking options. È possibile abilitare il rilevamento delle modifiche, impostare le opzioni, modificare le opzioni e disabilitare il rilevamento delle modifiche.You can enable change tracking, set options, change options, and disable change tracking. Per alcuni esempi, vedere la sezione Esempi più avanti in questo articolo.For examples, see the Examples section later in this article.

ONON
Abilita il rilevamento delle modifiche per il database.Enables change tracking for the database. Quando si abilita il rilevamento delle modifiche, è possibile impostare anche le opzioni AUTO CLEANUP e CHANGE RETENTION.When you enable change tracking, you can also set the AUTO CLEANUP and CHANGE RETENTION options.

AUTO_CLEANUP = { ON | OFF }AUTO_CLEANUP = { ON | OFF }
ONON
Le informazioni sul rilevamento delle modifiche vengono rimosse automaticamente una volta trascorso il periodo di conservazione specificato.Change tracking information is automatically removed after the specified retention period.

OFFOFF
I dati relativi al rilevamento delle modifiche non vengono rimossi dal database.Change tracking data isn't removed from the database.

CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES }CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES }

Specifica il periodo minimo di conservazione delle informazioni sul rilevamento delle modifiche nel database.Specifies the minimum period for keeping change tracking information in the database. I dati vengono rimossi solo quando il valore di AUTO_CLEANUP è ON.Data is removed only when the AUTO_CLEANUP value is ON.

retention_period è un numero intero che specifica il componente numerico del periodo di memorizzazione.retention_period is an integer that specifies the numerical component of the retention period.

L'impostazione predefinita è 2 giorni.The default retention period is 2 days. Il periodo di memorizzazione minimo è 1 minuto.The minimum retention period is 1 minute. Il tipo di memorizzazione predefinito è DAYS.The default retention type is DAYS.

OFFOFF
Disabilita il rilevamento delle modifiche per il database.Disables change tracking for the database. Prima di disabilitare il rilevamento delle modifiche per il database, disabilitarlo per tutte le tabelle.Disable change tracking on all tables before you disable change tracking off the database.

<containment_option> ::= <containment_option> ::=
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Consente di controllare le opzioni di indipendenza del database.Controls database containment options.

CONTAINMENT = { NONE | PARTIAL}CONTAINMENT = { NONE | PARTIAL}
NessunoNONE
Il database non è un database indipendente.The database isn't a contained database.

PARTIALPARTIAL
Il database è un database indipendente.The database is a contained database. L'impostazione dell'indipendenza del database su PARTIAL restituisce un errore se per il database è abilitato Change Data Capture, la replica o il rilevamento delle modifiche.Setting database containment to partial will fail if the database has replication, change data capture, or change tracking enabled. Il controllo degli errori viene arrestato dopo un errore.Error checking stops after one failure. Per altre informazioni sui database indipendenti, vedere Contained Databases.For more information about contained databases, see Contained Databases.

<cursor_option> ::=<cursor_option> ::=

Consente di controllare le opzioni del cursore.Controls cursor options.

CURSOR_CLOSE_ON_COMMIT { ON | OFF }CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ONON
Quando si esegue il commit o il rollback di una transazione, eventuali cursori aperti vengono chiusi.Any cursors open when you commit or roll back a transaction are closed.

OFFOFF
I cursori rimangono aperti quando viene eseguito il commit di una transazione. Quando si esegue il rollback di una transazione vengono chiusi tutti i cursori, ad eccezione di quelli definiti come INSENSITIVE o STATIC.Cursors remain open when a transaction is committed; rolling back a transaction closes any cursors except those defined as INSENSITIVE or STATIC.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per CURSOR_CLOSE_ON_COMMIT.Connection-level settings that are set by using the SET statement override the default database setting for CURSOR_CLOSE_ON_COMMIT. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta CURSOR_CLOSE_ON_COMMIT su OFF per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting CURSOR_CLOSE_ON_COMMIT to OFF for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET CURSOR_CLOSE_ON_COMMIT.For more information, see SET CURSOR_CLOSE_ON_COMMIT.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_cursor_close_on_commit_on nella vista del catalogo sys.databases oppure la proprietà IsCloseCursorsOnCommitEnabled della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the is_cursor_close_on_commit_on column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function.

CURSOR_DEFAULT { LOCAL | GLOBAL }CURSOR_DEFAULT { LOCAL | GLOBAL }
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Determina se l'ambito del cursore è LOCAL o GLOBAL.Controls whether cursor scope uses LOCAL or GLOBAL.

LOCALLOCAL
Se si specifica LOCAL e non si definisce un cursore come GLOBAL al momento della creazione, l'ambito del cursore è locale.When you specify LOCAL and don't define a cursor as GLOBAL when you create the cursor, the cursor's scope is local. In particolare, l'ambito è locale rispetto al batch, alla stored procedure o al trigger in cui il cursore è stato creato.Specifically, the scope is local to the batch, stored procedure, or trigger in which you created the cursor. Il nome del cursore è valido solo in questo ambito.The cursor name is valid only within this scope.

È possibile fare riferimento al cursore tramite variabili di cursore locali nel batch, nella stored procedure o nel trigger oppure tramite un parametro OUTPUT di stored procedure.The cursor can be referenced by local cursor variables in the batch, stored procedure, or trigger, or a stored procedure OUTPUT parameter. Il cursore viene deallocato in modo implicito al termine dell'esecuzione del batch, della stored procedure o del trigger,The cursor is implicitly deallocated when the batch, stored procedure, or trigger ends. a meno che non sia stato passato a un parametro OUTPUT.The cursor is deallocated unless it was passed back in an OUTPUT parameter. Il cursore potrebbe essere passato di nuovo a un parametro OUTPUT.The cursor might be passed back in an OUTPUT parameter. In questo caso, viene deallocato quando l'ultima variabile che vi fa riferimento viene deallocata o esce dall'ambito.If the cursor passes back this way, the cursor is deallocated when the last variable that references the cursor is deallocated or goes out of scope.

GLOBALGLOBAL
Se si specifica GLOBAL e se un cursore non viene definito come LOCAL al momento della creazione, l'ambito del cursore è globale rispetto alla connessione.When GLOBAL is specified, and a cursor isn't defined as LOCAL when created, the scope of the cursor is global to the connection. È possibile fare riferimento al nome del cursore in qualsiasi stored procedure o batch eseguiti tramite la connessione.The cursor name can be referenced in any stored procedure or batch executed by the connection.

Il cursore viene deallocato in modo implicito soltanto al momento della disconnessione.The cursor is implicitly deallocated only at disconnect. Per altre informazioni, vedere DECLARE CURSOR.For more information, see DECLARE CURSOR.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_local_cursor_default nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_local_cursor_default column in the sys.databases catalog view. oppure la proprietà IsLocalCursorsDefault della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsLocalCursorsDefault property of the DATABASEPROPERTYEX function.

<database_mirroring> <database_mirroring>
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Per le descrizioni dell'argomento, vedere Mirroring del database ALTER DATABASE.For the argument descriptions, see ALTER DATABASE Database Mirroring.

<date_correlation_optimization_option> ::= <date_correlation_optimization_option> ::=
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Controlla l'opzione date_correlation_optimization.Controls the date_correlation_optimization option.

DATE_CORRELATION_OPTIMIZATION { ON | OFF }DATE_CORRELATION_OPTIMIZATION { ON | OFF }
ONON
SQL ServerSQL Server mantiene statistiche di correlazione in cui un vincolo FOREIGN KEY collega due tabelle qualsiasi nel database e le tabelle hanno colonne datetime.maintains correlation statistics where a FOREIGN KEY constraint links any two tables in the database and the tables have datetime columns.

OFFOFF
Non vengono mantenute statistiche di correlazione.Correlation statistics are not maintained.

Per impostare DATE_CORRELATION_OPTIMIZATION su ON, è necessario che non siano presenti connessioni attive al database, ad eccezione della connessione che esegue l'istruzione ALTER DATABASE.To set DATE_CORRELATION_OPTIMIZATION to ON, there must be no active connections to the database except for the connection that is executing the ALTER DATABASE statement. Successivamente, sono supportate più connessioni.Afterwards, multiple connections are supported.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna is_date_correlation_on nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the is_date_correlation_on column in the sys.databases catalog view.

<db_encryption_option> ::=<db_encryption_option> ::=

Controlla lo stato della crittografia del database.Controls the database encryption state.

ENCRYPTION {ON | OFF | SUSPEND | RESUME}ENCRYPTION {ON | OFF | SUSPEND | RESUME}
ONON
Imposta il database in modo che venga crittografato.Sets the database to be encrypted.

OFFOFF
Imposta il database in modo che non venga crittografato.Sets the database to not be encrypted.

SUSPENDSUSPEND
Si applica a: SQL ServerSQL Server (a partire da Anteprima di SQL Server 2019SQL Server 2019 preview)Applies to: SQL ServerSQL Server (Starting with Anteprima di SQL Server 2019SQL Server 2019 preview)
Consente di sospendere l'analisi della crittografia dopo l'abilitazione o la disabilitazione di Transparent Data Encryption oppure dopo la modifica della chiave di crittografia.Can be used to pause the encryption scan after Transparent Data Encryption has been enabled or disabled, or after the encryption key has been changed.

RESUMERESUME
Si applica a: SQL ServerSQL Server (a partire da Anteprima di SQL Server 2019SQL Server 2019 preview)Applies to: SQL ServerSQL Server (Starting with Anteprima di SQL Server 2019SQL Server 2019 preview)
Consente di riprendere l'analisi della crittografia precedentemente sospesa.Can be used to resume a previously paused encryption scan.

Per altre informazioni sulla crittografia del database, vedere Transparent Data Encryption e Transparent Data Encryption con il database SQL di Azure.For more information about database encryption, see Transparent Data Encryption, and Transparent Data Encryption with Azure SQL Database.

Se la crittografia è abilitata a livello di database, vengono crittografati tutti i filegroup.When encryption is enabled at the database level, all filegroups will be encrypted. Qualsiasi filegroup nuovo eredita la proprietà di crittografia.Any new filegroups will inherit the encrypted property. Se in un database sono presenti filegroup impostati su READ ONLY, l'operazione di crittografia del database avrà esito negativo.If any filegroups in the database are set to READ ONLY, the database encryption operation will fail.

È possibile vedere lo stato di crittografia del database, così come lo stato dell'analisi di crittografia, usando la DMV sys.dm_database_encryption_keys.You can see the encryption state of the database as well as the state of the encryption scan by using the sys.dm_database_encryption_keys dynamic management view.

<db_state_option> ::= <db_state_option> ::=
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Controlla lo stato del database.Controls the state of the database.

OFFLINEOFFLINE
Il database viene chiuso normalmente e contrassegnato come offline.The database is closed, shut down cleanly, and marked offline. Mentre è offline, il database non può essere modificato.The database can't be modified while it's offline.

ONLINEONLINE
Il database è aperto e disponibile per l'uso.The database is open and available for use.

EMERGENCYEMERGENCY
Il database è contrassegnato come READ_ONLY, la registrazione è disabilitata e l'accesso è limitato ai soli membri del ruolo predefinito del server sysadmin.The database is marked READ_ONLY, logging is disabled, and access is limited to members of the sysadmin fixed server role. L'opzione EMERGENCY viene usata principalmente per attività di risoluzione dei problemi.EMERGENCY is primarily used for troubleshooting purposes. Ad esempio, è possibile impostare lo stato EMERGENCY per un database contrassegnato come sospetto a causa di un file di log danneggiato.For example, a database marked as suspect because of a corrupted log file can be set to the EMERGENCY state. Con questa impostazione, l'amministratore di sistema potrà accedere in sola lettura al database.This setting could enable the system administrator read-only access to the database. Solo i membri del ruolo predefinito del server sysadmin possono impostare lo stato EMERGENCY per un database.Only members of the sysadmin fixed server role can set a database to the EMERGENCY state.

Nota

Autorizzazioni: per impostare lo stato di un database su OFFLINE o EMERGENCY, è necessaria l'autorizzazione ALTER DATABASE per il database dell'area di interesse.Permissions: ALTER DATABASE permission for the subject database is required to change a database to the offline or emergency state. Per modificare lo stato di un database da offline a online è necessaria l'autorizzazione ALTER ANY DATABASE a livello di server.The server level ALTER ANY DATABASE permission is required to move a database from offline to online.

Per determinare lo stato di questa opzione, è possibile esaminare le colonne state e state_desc nella vista del catalogo sys.databasesYou can determine this option's status by examining the state and state_desc columns in the sys.databases catalog view. oppure la proprietà Status della funzione DATABASEPROPERTYEX.You can also determine the status by examining the Status property of the DATABASEPROPERTYEX function. Per altre informazioni, vedere Stati del database.For more information, see Database States.

Un database contrassegnato come RESTORING non può essere impostato su OFFLINE, ONLINE o EMERGENCY.A database marked as RESTORING can't be set to OFFLINE, ONLINE, or EMERGENCY. Lo stato RESTORING può essere impostato durante un'operazione di ripristino attiva o quando un'operazione di ripristino di un database o di un file di log ha esito negativo a causa di un file di backup danneggiato.A database may be in the RESTORING state during an active restore operation or when a restore operation of a database or log file fails because of a corrupted backup file.

<db_update_option> ::=<db_update_option> ::=

Indica se sono consentiti aggiornamenti nel database.Controls whether updates are allowed on the database.

READ_ONLYREAD_ONLY
Gli utenti possono leggere i dati dal database, ma non modificarli.Users can read data from the database but not modify it.

Nota

Per migliorare le prestazioni di esecuzione delle query, aggiornare le statistiche prima di impostare un database su READ_ONLY.To improve query performance, update statistics before setting a database to READ_ONLY. Se dopo che un database viene impostato su READ_ONLY sono necessarie statistiche aggiuntive, nel Motore di databaseDatabase Engine verranno create statistiche in tempdb.If additional statistics are needed after a database is set to READ_ONLY, the Motore di databaseDatabase Engine will create statistics in tempdb. Per altre informazioni sulle statistiche per un database di sola lettura, vedere Statistiche.For more information about statistics for a read-only database, see Statistics.

READ_WRITEREAD_WRITE
Il database è disponibile per operazioni di lettura e scrittura.The database is available for read and write operations.

Per modificare questo stato, è necessario disporre dell'accesso esclusivo al database.To change this state, you must have exclusive access to the database. Per altre informazioni, vedere la clausola SINGLE_USER.For more information, see the SINGLE_USER clause.

Nota

Nei database federati di Database SQLSQL Database, SET { READ_ONLY | READ_WRITE } è disabilitato.On Database SQLSQL Database federated databases, SET { READ_ONLY | READ_WRITE } is disabled.

<db_user_access_option> ::=<db_user_access_option> ::=

Controlla l'accesso degli utenti al database.Controls user access to the database.

SINGLE_USERSINGLE_USER
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Specifica che l'accesso al database è consentito a un solo utente alla volta.Specifies that only one user at a time can access the database. Se si specifica SINGLE_USER e al database sono connessi altri utenti, l'istruzione ALTER DATABASE viene bloccata finché tutti gli utenti non si disconnettono dal database specificato.If you specify SINGLE_USER and other users connect to the database, the ALTER DATABASE statement is blocked until all users disconnect from the specified database. Per eseguire l'override di questo comportamento, vedere la clausola WITH <termination>.To override this behavior, see the WITH <termination> clause.

Il database rimane in modalità SINGLE_USER anche se l'utente che ha impostato l'opzione si disconnette. A questo punto, un altro utente (ma solo uno) potrà connettersi al database.The database remains in SINGLE_USER mode even if the user that set the option signs out. At that point, a different user, but only one, can connect to the database.

Prima di impostare il database in modalità SINGLE_USER, verificare che l'opzione AUTO_UPDATE_STATISTICS_ASYNC sia impostata su OFF.Before you set the database to SINGLE_USER, verify the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF. Se l'opzione è impostata su ON, il thread in background usato per aggiornare le statistiche stabilisce una connessione con il database che non sarà quindi accessibile in modalità utente singolo.When set to ON, the background thread used to update statistics takes a connection against the database, and you will be unable to access the database in single-user mode. Per visualizzare lo stato di questa opzione, eseguire una query sulla colonna is_auto_update_stats_async_on nella vista del catalogo sys.databases.To view the status of this option, query the is_auto_update_stats_async_on column in the sys.databases catalog view. Se l'opzione è impostata su ON, effettuare le operazioni seguenti:If the option is set to ON, perform the following tasks:

  1. Impostare AUTO_UPDATE_STATISTICS_ASYNC su OFF.Set AUTO_UPDATE_STATISTICS_ASYNC to OFF.

  2. Verificare la presenza di processi asincroni attivi relativi alle statistiche eseguendo una query sulla DMV sys.dm_exec_background_job_queue.Check for active asynchronous statistics jobs by querying the sys.dm_exec_background_job_queue dynamic management view.

Se sono presenti processi attivi, consentire il completamento di tali processi o terminarli manualmente usando KILL STATS JOB.If there are active jobs, either allow the jobs to complete or manually terminate them by using KILL STATS JOB.

RESTRICTED_USERRESTRICTED_USER
Consente la connessione al database solo ai membri del ruolo predefinito del database db_owner e ai membri dei ruoli predefiniti del server dbcreator e sysadmin.Allows for only members of the db_owner fixed database role and dbcreator and sysadmin fixed server roles to connect to the database. senza tuttavia imporre un limite al numero di connessioni.RESTRICTED_USER doesn't limit their number. Tutte le connessioni al database vengono interrotte entro l'intervallo di tempo specificato nella clausola di terminazione dell'istruzione ALTER DATABASE.Disconnect all connections to the database using the timeframe specified by the ALTER DATABASE statement's termination clause. Dopo l'impostazione dello stato RESTRICTED_USER per il database, qualsiasi tentativo di connessione da parte di utenti non qualificati viene rifiutato.After the database has transitioned to the RESTRICTED_USER state, connection attempts by unqualified users are refused.

MULTI_USERMULTI_USER
Consente la connessione al database a tutti gli utenti che dispongono di autorizzazioni appropriate.All users that have the appropriate permissions to connect to the database are allowed.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna user_access nella vista del catalogo sys.databasesYou can determine this option's status by examining the user_access column in the sys.databases catalog view. oppure la proprietà UserAccess della funzione DATABASEPROPERTYEX.You can also determine the status by examining the UserAccess property of the DATABASEPROPERTYEX function.

<delayed_durability_option> ::= <delayed_durability_option> ::=
Si applica a: SQL ServerSQL Server (da SQL Server 2014 (12.x)SQL Server 2014 (12.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017)

Determina se le transazioni sottoposte a commit sono completamente durevoli o durevoli posticipate.Controls whether transactions commit fully durable or delayed durable.

DISABLEDDISABLED
Tutte le transazioni in cui viene usato SET DISABLED sono completamente durevoli.All transactions following SET DISABLED are fully durable. Tutte le opzioni di durabilità impostate in un blocco atomico o in un'istruzione COMMIT vengono ignorate.Any durability options set in an atomic block or commit statement are ignored.

ALLOWEDALLOWED
Tutte le transazioni in cui viene usato SET ALLOWED sono completamente durevoli o durevoli posticipate, a seconda del set di opzioni di durabilità nel blocco atomico o nell'istruzione COMMIT.All transactions following SET ALLOWED are either fully durable or delayed durable, depending upon the durability option set in the atomic block or commit statement.

FORCEDFORCED
Tutte le transazioni in cui viene usato SET FORCED sono durevoli posticipate.All transactions following SET FORCED are delayed durable. Tutte le opzioni di durabilità impostate in un blocco atomico o in un'istruzione COMMIT vengono ignorate.Any durability options set in an atomic block or commit statement are ignored.

<external_access_option> ::= <external_access_option> ::=
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Determina se è consentito l'accesso al database da parte di risorse esterne, ad esempio oggetti di un altro database.Controls whether the database can be accessed by external resources, such as objects from another database.

DB_CHAINING { ON | OFF }DB_CHAINING { ON | OFF }
ONON
Il database può essere l'origine o la destinazione di una catena di proprietà tra database.Database can be the source or target of a cross-database ownership chain.

OFFOFF
Il database non può partecipare al concatenamento della proprietà tra database.Database can't participate in cross-database ownership chaining.

Importante

Questa impostazione viene riconosciuta dall'istanza di SQL ServerSQL Server quando l'opzione del server cross db ownership chaining è impostata su 0 (OFF).The instance of SQL ServerSQL Server will recognize this setting when the cross db ownership chaining server option is 0 (OFF). Quando cross db ownership chaining è 1 (ON), tutti i database utente possono partecipare ai concatenamenti della proprietà tra database, a prescindere dal valore di questa opzione.When cross db ownership chaining is 1 (ON), all user databases can participate in cross-database ownership chains, regardless of the value of this option. Questa opzione viene impostata tramite sp_configure.This option is set by using sp_configure.

Per impostare questa opzione, è necessaria l'autorizzazione CONTROL SERVER nel database.To set this option, requires CONTROL SERVER permission on the database.

Non è possibile impostare l'opzione DB_CHAINING per i database di sistema master, model e tempdb.The DB_CHAINING option can't be set on these system databases: master, model, and tempdb.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_db_chaining_on nella vista del catalogo sys.databases.You can determine this option's status by examining the is_db_chaining_on column in the sys.databases catalog view.

TRUSTWORTHY { ON | OFF }TRUSTWORTHY { ON | OFF }
ONON
I moduli di database, ad esempio stored procedure o funzioni definite dall'utente, che usano un contesto di rappresentazione, possono accedere a risorse esterne al database.Database modules (for example, user-defined functions or stored procedures) that use an impersonation context can access resources outside the database.

OFFOFF
I moduli di database in un contesto di rappresentazione non possono accedere a risorse esterne al database.Database modules in an impersonation context can't access resources outside the database.

L'opzione TRUSTWORTHY viene impostata su OFF ogni volta che il database viene collegato.TRUSTWORTHY is set to OFF whenever the database is attached.

Per impostazione predefinita, in tutti i database di sistema, a eccezione del database msdb, TRUSTWORTHY è impostata su OFF.By default, all system databases except the msdb database have TRUSTWORTHY set to OFF. Il valore non può essere cambiato per i database model e tempdb.The value can't be changed for the model and tempdb databases. È consigliabile evitare di impostare l'opzione TRUSTWORTHY su ON per il database master.We recommend that you never set the TRUSTWORTHY option to ON for the master database.

Per impostare questa opzione, è necessaria l'autorizzazione CONTROL SERVER nel database.To set this option, requires CONTROL SERVER permission on the database.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_trustworthy_on nella vista del catalogo sys.databases.You can determine this option's status by examining the is_trustworthy_on column in the sys.databases catalog view.

DEFAULT_FULLTEXT_LANGUAGEDEFAULT_FULLTEXT_LANGUAGE
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Consente di specificare il valore della lingua predefinita per le colonne con indicizzazione full-text.Specifies the default language value for full-text indexed columns.

Importante

Questa opzione è consentita solo quando l'opzione CONTAINMENT è stata impostata su PARTIAL.This option is allowable only when CONTAINMENT has been set to PARTIAL. Se l'opzione CONTAINMENT è impostata su NONE, si verificheranno errori.If CONTAINMENT is set to NONE, errors will occur.

DEFAULT_LANGUAGEDEFAULT_LANGUAGE
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Specifica la lingua predefinita per tutti i nuovi account di accesso creati.Specifies the default language for all newly created logins. È possibile specificare la lingua indicando l'ID locale (lcid), il nome della lingua o l'alias di lingua.Language can be specified by providing the local ID (lcid), the language name, or the language alias. Per un elenco dei nomi e degli alias di lingua accettabili, vedere sys.syslanguages.For a list of acceptable language names and aliases, see sys.syslanguages. Questa opzione è consentita solo quando l'opzione CONTAINMENT è stata impostata su PARTIAL.This option is allowable only when CONTAINMENT has been set to PARTIAL. Se l'opzione CONTAINMENT è impostata su NONE, si verificheranno errori.If CONTAINMENT is set to NONE, errors will occur.

NESTED_TRIGGERSNESTED_TRIGGERS
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Specifica se un trigger AFTER supporta la propagazione, ovvero un'azione che avvia un altro trigger, che a sua volta ne avvia un altro e così via.Specifies whether an AFTER trigger can cascade; that is, perform an action that initiates another trigger, which initiates another trigger, and so on. Questa opzione è consentita solo quando l'opzione CONTAINMENT è stata impostata su PARTIAL.This option is allowable only when CONTAINMENT has been set to PARTIAL. Se l'opzione CONTAINMENT è impostata su NONE, si verificheranno errori.If CONTAINMENT is set to NONE, errors will occur.

TRANSFORM_NOISE_WORDSTRANSFORM_NOISE_WORDS
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Consente di eliminare un messaggio di errore visualizzato nel caso in cui parole non significative impediscono l'esecuzione di un'operazione booleana in una query full-text.Used to suppress an error message if noise words, or stopwords, cause a Boolean operation on a full-text query to fail. Questa opzione è consentita solo quando l'opzione CONTAINMENT è stata impostata su PARTIAL.This option is allowable only when CONTAINMENT has been set to PARTIAL. Se l'opzione CONTAINMENT è impostata su NONE, si verificheranno errori.If CONTAINMENT is set to NONE, errors will occur.

TWO_DIGIT_YEAR_CUTOFFTWO_DIGIT_YEAR_CUTOFF
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Specifica un numero intero compreso tra 1753 e 9999 che rappresenta l'anno di cambio data per l'interpretazione degli anni a due cifre come anni a quattro cifre.Specifies an integer from 1753 to 9999 that represents the cutoff year for interpreting two-digit years as four-digit years. Questa opzione è consentita solo quando l'opzione CONTAINMENT è stata impostata su PARTIAL.This option is allowable only when CONTAINMENT has been set to PARTIAL. Se l'opzione CONTAINMENT è impostata su NONE, si verificheranno errori.If CONTAINMENT is set to NONE, errors will occur.

<FILESTREAM_option> ::= <FILESTREAM_option> ::=
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server ( SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Consente di controllare le impostazioni per le tabelle FileTable.Controls the settings for FileTables.

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
OFFOFF
L'accesso non transazionale ai dati delle tabelle FileTable è disabilitato.Non-transactional access to FileTable data is disabled.

READ_ONLYREAD_ONLY
I dati FILESTREAM nelle tabelle FileTable in questo database possono essere letti da processi non transazionali.FILESTREAM data in FileTables in this database can be read by non-transactional processes.

FULLFULL
Abilita l'accesso non transazionale completo a dati di FILESTREAM nelle tabelle FileTable.Enables full, non-transactional access to FILESTREAM data in FileTables is enabled.

DIRECTORY_NAME = <directory_name> DIRECTORY_NAME = <directory_name>
Nome di directory compatibile con Windows.A windows-compatible directory name. Il nome deve essere univoco in tutti i nomi di directory a livello di database nell'istanza di SQL ServerSQL Server.This name should be unique among all the database-level directory names in the SQL ServerSQL Server instance. Il confronto di univocità non supporta la distinzione tra maiuscole e minuscole, indipendentemente dalle impostazioni delle regole di confronto.Uniqueness comparison is case-insensitive, regardless of collation settings. È necessario impostare questa opzione prima di creare una tabella FileTable nel database.This option must be set before creating a FileTable in this database.

<HADR_options> ::= <HADR_options> ::=
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Vedere ALTER DATABASE SET HADR.See ALTER DATABASE SET HADR.

<mixed_page_allocation_option> ::= <mixed_page_allocation_option> ::=
Si applica a: SQL ServerSQL Server (da SQL Server 2016 (13.x)SQL Server 2016 (13.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

Controlla se il database può creare pagine iniziali usando un extent misto per le prime otto pagine di un indice o di una tabella.Controls whether the database can create initial pages using a mixed extent for the first eight pages of a table or index.

MIXED_PAGE_ALLOCATION { OFF | ON }MIXED_PAGE_ALLOCATION { OFF | ON }
OFFOFF
Il database crea sempre le pagine iniziali usando extent uniformi.The database always creates initial pages using uniform extents. OFF è il valore predefinito.OFF is the default value.

ONON
Il database crea sempre le pagine iniziali usando extent misti.The database can create initial pages using mixed extents.

Questa opzione è impostata su ON per tutti i database di sistema.This setting is ON for all system databases. tempdb è l'unico database di sistema che supporta l'opzione OFF.tempdb is the only system database that supports OFF.

<PARAMETERIZATION_option> ::=<PARAMETERIZATION_option> ::=

Consente di controllare l'opzione di parametrizzazione.Controls the parameterization option. Per altre informazioni sulla parametrizzazione, vedere Guida sull'architettura di elaborazione delle query.For more information on parameterization, see the Query Processing Architecture Guide.

PARAMETERIZATION { SIMPLE | FORCED }PARAMETERIZATION { SIMPLE | FORCED }
SIMPLESIMPLE
Le query vengono parametrizzate in base al comportamento predefinito del database.Queries are parameterized based on the default behavior of the database.

FORCEDFORCED
Con SQL ServerSQL Server viene eseguita la parametrizzazione di tutte le query nel database.SQL ServerSQL Server parameterizes all queries in the database.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna is_parameterization_forced nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the is_parameterization_forced column in the sys.databases catalog view.

<query_store_options> ::= <query_store_options> ::=
Si applica a: SQL ServerSQL Server (da SQL Server 2016 (13.x)SQL Server 2016 (13.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

ON | OFF | CLEAR [ ALL ]ON | OFF | CLEAR [ ALL ]
Verifica se Query Store è abilitato nel database e controlla la rimozione del contenuto di Query Store.Controls if the query store is enabled in this database, and also controls removing the contents of the query store. Per altre informazioni, vedere Scenari di utilizzo di Query Store.For more information, see Query Store Usage Scenarios.

ONON
Abilita Query Store.Enables the query store.

OFFOFF
Disabilita Query Store.Disables the query store. OFF è il valore predefinito.OFF is the default value.

CLEARCLEAR
Rimuove il contenuto di Query Store.Remove the contents of the query store.

Nota

Per SQL Data WarehouseSQL Data Warehouse, è necessario eseguire il comando ALTER DATABASE SET QUERY_STORE dal database utente.For SQL Data WarehouseSQL Data Warehouse, you must execute ALTER DATABASE SET QUERY_STORE from the user database. L'esecuzione dell'istruzione da un'altra istanza del data warehouse non è supportata.Executing the statement from another data warehouse instance is not supported.

OPERATION_MODE { READ_ONLY | READ_WRITE }OPERATION_MODE { READ_ONLY | READ_WRITE }
Descrive la modalità di funzionamento di Query Store.Describes the operation mode of the query store.

READ_WRITEREAD_WRITE
Query Store raccoglie e salva in modo permanente le informazioni statistiche sull'esecuzione di runtime e piani di query.The query store collects and persists query plan and runtime execution statistics information.

READ_ONLYREAD_ONLY
Le informazioni possono essere lette da Query Store, ma non vengono aggiunte nuove informazioni.Information can be read from the query store, but new information isn't added. Se lo spazio massimo allocato dell'archivio query viene esaurito, la modalità di funzionamento dell'archivio query passa a READ_ONLY.If the maximum issued space of the query store has been exhausted, the query store will change is operation mode to READ_ONLY.

CLEANUP_POLICYCLEANUP_POLICY
Descrive i criteri di conservazione dati di Query Store.Describes the data retention policy of the query store. STALE_QUERY_THRESHOLD_DAYS determina il numero di giorni in cui le informazioni per una query vengono conservate nell'archivio query.STALE_QUERY_THRESHOLD_DAYS determines the number of days for which the information for a query is kept in the query store. STALE_QUERY_THRESHOLD_DAYS è di tipo bigint.STALE_QUERY_THRESHOLD_DAYS is type bigint.

DATA_FLUSH_INTERVAL_SECONDSDATA_FLUSH_INTERVAL_SECONDS
Determina la frequenza con cui i dati scritti nell'archivio query vengono mantenuti su disco.Determines the frequency at which data written to the query store is persisted to disk. Per ottimizzare le prestazioni, i dati raccolti dall'archivio query vengono scritti in modo asincrono sul disco.To optimize for performance, data collected by the query store is asynchronously written to the disk. La frequenza con cui si verifica questo trasferimento asincrono viene configurata tramite l'argomento DATA_FLUSH_INTERVAL_SECONDS.The frequency at which this asynchronous transfer occurs is configured by using the DATA_FLUSH_INTERVAL_SECONDS argument. DATA_FLUSH_INTERVAL_SECONDS è di tipo bigint.DATA_FLUSH_INTERVAL_SECONDS is type bigint.

MAX_STORAGE_SIZE_MBMAX_STORAGE_SIZE_MB
Determina lo spazio allocato a Query Store.Determines the space issued to the query store. MAX_STORAGE_SIZE_MB è di tipo bigint.MAX_STORAGE_SIZE_MB is type bigint.

INTERVAL_LENGTH_MINUTESINTERVAL_LENGTH_MINUTES
Determina l'intervallo di tempo in cui vengono aggregati i dati delle statistiche di esecuzione di runtime nell'archivio query.Determines the time interval at which runtime execution statistics data is aggregated into the query store. Per ottimizzare l'utilizzo dello spazio, le statistiche di esecuzione di runtime nell'archivio di statistiche di runtime vengono aggregate in un intervallo di tempo fisso.To optimize for space usage, the runtime execution statistics in the runtime stats store are aggregated over a fixed time window. L'intervallo di tempo predefinito viene configurato tramite l'argomento INTERVAL_LENGTH_MINUTES.This fixed time window is configured by using the INTERVAL_LENGTH_MINUTES argument. INTERVAL_LENGTH_MINUTES è di tipo bigint.INTERVAL_LENGTH_MINUTES is type bigint.

SIZE_BASED_CLEANUP_MODE { AUTO | OFF }SIZE_BASED_CLEANUP_MODE { AUTO | OFF }
Determina se la pulizia deve essere attivata automaticamente quando la quantità totale dei dati ha quasi raggiunto le dimensioni massime.Controls whether cleanup automatically activates when total amount of data gets close to maximum size.

AUTOAUTO
La pulizia basata sulle dimensioni viene attivata automaticamente quando le dimensioni sul disco raggiungono il 90% di max_storage_size_mb.Size-based cleanup will be automatically activated when size on disk reaches 90% of max_storage_size_mb. La pulizia basata sulle dimensioni rimuove per prime le query meno recenti e meno dispendiose.Size-based cleanup removes the least expensive and oldest queries first. Si arresta quando raggiunge circa l'80% di max_storage_size_mb, ossia il valore di configurazione predefinito.It stops at approximately 80% of max_storage_size_mb.This value is the default configuration value.

OFFOFF
La pulizia basata sulle dimensioni non viene attivata automaticamente.Size-based cleanup won't be automatically activated.

SIZE_BASED_CLEANUP_MODE è di tipo nvarchar.SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODE { ALL | AUTO | NONE | CUSTOM }QUERY_CAPTURE_MODE { ALL | AUTO | NONE | CUSTOM }
Determina la modalità di acquisizione query attiva.Designates the currently active query capture mode.

ALLALL
Consente di acquisire tutte le query.Captures all queries. ALL è il valore di configurazione predefinito.ALL is the default configuration value. Si tratta del valore di configurazione predefinito quando si inizia a usare SQL Server 2016 (13.x)SQL Server 2016 (13.x).This is the default configuration value starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x).

AUTOAUTO
Consente di acquisire le query pertinenti in base al conteggio delle esecuzioni e al consumo delle risorse.Capture relevant queries based on execution count and resource consumption. Si tratta del valore di configurazione predefinito quando si inizia a usare Anteprima di SQL Server 2019SQL Server 2019 preview CTP 3.0.This is the default configuration value starting with Anteprima di SQL Server 2019SQL Server 2019 preview CTP 3.0.

NessunoNONE
Consente di arrestare l'acquisizione di nuove query.Stop capturing new queries. Query Store continuerà a raccogliere le statistiche di compilazione e runtime per le query che sono già state acquisite.Query Store will continue to collect compile and runtime statistics for queries that were captured already. Usare con cautela questa configurazione perché si rischia di perdere query importanti.Use this configuration with caution since you may miss capturing important queries.

CUSTOMCUSTOM
Si applica a: SQL ServerSQL Server A partire da Anteprima di SQL Server 2019SQL Server 2019 preview CTP 3.0Applies to: SQL ServerSQL Server (Starting with Anteprima di SQL Server 2019SQL Server 2019 preview CTP 3.0)

Consente di controllare le opzioni QUERY_CAPTURE_POLICY.Allows control over the QUERY_CAPTURE_POLICY options.

QUERY_CAPTURE_MODE è di tipo nvarchar.QUERY_CAPTURE_MODE is type nvarchar.

max_plans_per_queryMAX_PLANS_PER_QUERY
Definisce il numero massimo di piani mantenuti per ogni query.Defines the maximum number of plans maintained for each query. Il valore predefinito è 200.The default is 200. MAX_PLANS_PER_QUERY è di tipo int.MAX_PLANS_PER_QUERY is type int.

<query_capture_policy_option_list> :: = <query_capture_policy_option_list> :: =
Si applica a: SQL ServerSQL Server A partire da Anteprima di SQL Server 2019SQL Server 2019 preview CTP 3.0Applies to: SQL ServerSQL Server (Starting with Anteprima di SQL Server 2019SQL Server 2019 preview CTP 3.0)

Controlla le opzioni dei criteri di acquisizione di Query Store.Controls the query store capture policy options. Ad eccezione di STALE_CAPTURE_POLICY_THRESHOLD, queste opzioni definiscono le condizioni OR che devono verificarsi perché le query vengano acquisite nel valore della soglia dei criteri di acquisizione non aggiornati definito.Except for STALE_CAPTURE_POLICY_THRESHOLD, these options define the OR conditions that need to happen for queries to be captured in the defined Stale Capture Policy Threshold value.

STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
Definisce l'intervallo di valutazione per determinare se una query deve essere acquisita.Defines the evaluation interval period to determine if a query should be captured. Il valore predefinito è 1 giorno e l'intervallo può essere impostato da 1 ora a sette giorni.The default is 1 day, and it can be set from 1 hour to seven days. number è di tipo int.number is type int.

EXECUTION_COUNTEXECUTION_COUNT
Definisce il numero di esecuzioni di una query nel periodo di valutazione.Defines the number of times a query is executed over the evaluation period. Il valore predefinito è 30. Questo significa che per il valore predefinito della soglia dei criteri di acquisizione non aggiornati è necessario eseguire una query almeno 30 volte al giorno perché venga salvata in modo permanente in Query Store.The default is 30, which means that for the default Stale Capture Policy Threshold, a query must execute at least 30 times in one day to be persisted in Query Store. EXECUTION_COUNT è di tipo int.EXECUTION_COUNT is type int.

TOTAL_COMPILE_CPU_TIME_MSTOTAL_COMPILE_CPU_TIME_MS
Definisce il tempo CPU di compilazione trascorso totale usato da una query nel periodo di valutazione.Defines total elapsed compile CPU time used by a query over the evaluation period. Il valore predefinito è 1000. Questo significa che per il valore predefinito della soglia dei criteri di acquisizione non aggiornati una query deve aver usato in totale almeno un secondo di tempo CPU al giorno per la compilazione perché venga salvata in modo permanente in Query Store.The default is 1000 which means that for the default Stale Capture Policy Threshold, a query must have a total of at least one second of CPU time spent during query compilation in one day to be persisted in Query Store. TOTAL_COMPILE_CPU_TIME_MS è di tipo int.TOTAL_COMPILE_CPU_TIME_MS is type int.

TOTAL_EXECUTION_CPU_TIME_MSTOTAL_EXECUTION_CPU_TIME_MS
Definisce il tempo CPU di esecuzione trascorso totale usato da una query nel periodo di valutazione.Defines total elapsed execution CPU time used by a query over the evaluation period. Il valore predefinito è 100. Questo significa che per il valore predefinito della soglia dei criteri di acquisizione non aggiornati una query deve aver usato almeno 100 ms di tempo CPU al giorno per l'esecuzione perché venga salvata in modo permanente in Query Store.The default is 100 which means that for the default Stale Capture Policy Threshold, a query must have a total of at least 100 ms of CPU time spent during execution in one day to be persisted in Query Store. TOTAL_EXECUTION_CPU_TIME_MS è di tipo int.TOTAL_EXECUTION_CPU_TIME_MS is type int.

<recovery_option> ::= <recovery_option> ::=
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Controlla le opzioni di recupero del database e il controllo degli errori di I/O su disco.Controls database recovery options and disk I/O error checking.

FULLFULL
Consente il recupero completo in caso di errori dei supporti tramite i backup del log delle transazioni.Provides full recovery after media failure by using transaction log backups. Se un file di dati risulta danneggiato, il recupero dei supporti consente di ripristinare tutte le transazioni di cui è stato eseguito il commit.If a data file is damaged, media recovery can restore all committed transactions. Per altre informazioni, vedere Modelli di recupero.For more information, see Recovery Models.

BULK_LOGGEDBULK_LOGGED
Consente il ripristino in caso di errori dei supporti.Provides recovery after media failure. Combina le prestazioni ottimali e la quantità minima di spazio per i log per determinate operazioni su larga scala o bulk.Combines the best performance and least amount of log-space use for certain large-scale or bulk operations. Per informazioni sulle operazioni a cui può essere applicata la registrazione minima, vedere Log delle transazioni.For information about what operations can be minimally logged, see The Transaction Log. Con il modello di recupero BULK_LOGGED vengono registrate informazioni minime per queste operazioni.Under the BULK_LOGGED recovery model, logging for these operations is minimal. Per altre informazioni, vedere Modelli di recupero.For more information, see Recovery Models.

SIMPLESIMPLE
Viene implementata una strategia di backup semplice che usa una quantità minima di spazio del log.A simple backup strategy that uses minimal log space is provided. Lo spazio dei log può essere riutilizzato automaticamente quando non è più necessario per il ripristino in seguito a errori del server.Log space can be automatically reused when it's no longer required for server failure recovery. Per altre informazioni, vedere Modelli di recupero.For more information, see Recovery Models.

Importante

La gestione del modello di recupero con registrazione minima risulta più semplice rispetto agli altri due modelli, ma comporta rischi maggiori di perdita dei dati in caso di danni a un file di dati.The simple recovery model is easier to manage than the other two models but at the expense of greater data loss exposure if a data file is damaged. Tutte le modifiche apportate dopo l'ultimo backup completo o differenziale del database vanno perdute ed è necessario immetterle nuovamente in modo manuale.All changes since the most recent database or differential database backup are lost and must be manually reentered.

Il modello di recupero predefinito dipende dal modello di recupero impostato per il database model.The default recovery model is determined by the recovery model of the model database. Per altre informazioni sulla scelta del modello di recupero appropriato, vedere Modelli di recupero.For more information about selecting the appropriate recovery model, see Recovery Models.

Per determinare lo stato di questa opzione, è possibile esaminare le colonne recovery_model and recovery_model_desc nella vista del catalogo sys.databasesYou can determine this option's status by examining the recovery_model and recovery_model_desc columns in the sys.databases catalog view. oppure la proprietà Recovery della funzione DATABASEPROPERTYEX.You can also determine the status by examining the Recovery property of the DATABASEPROPERTYEX function.

TORN_PAGE_DETECTION { ON | OFF }TORN_PAGE_DETECTION { ON | OFF }
ONON
Le pagine incomplete possono essere rilevate da Motore di databaseDatabase Engine.Incomplete pages can be detected by the Motore di databaseDatabase Engine.

OFFOFF
Le pagine incomplete non possono essere rilevate da Motore di databaseDatabase Engine.Incomplete pages can't be detected by the Motore di databaseDatabase Engine.

Importante

La struttura della sintassi TORN_PAGE_DETECTION ON | OFF verrà rimossa a partire da una delle prossime versioni di SQL ServerSQL Server.The syntax structure TORN_PAGE_DETECTION ON | OFF will be removed in a future version of SQL ServerSQL Server. Evitare pertanto di usarla in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni che attualmente usano questa struttura.Avoid using this syntax structure in new development work, and plan to modify applications that currently use the syntax structure. In alternativa, usare l'opzione PAGE_VERIFY.Use the PAGE_VERIFY option instead.

PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
Individua le pagine del database danneggiate in seguito a errori di percorso di I/O su disco.Discovers damaged database pages caused by disk I/O path errors. Gli errori di percorso di I/O su disco possono essere la causa di problemi di danneggiamento del database.Disk I/O path errors can be the cause of database corruption problems. Questi errori sono il più delle volte dovuti a interruzioni dell'alimentazione o a problemi hardware che si verificano nel momento in cui la pagina viene scritta su disco.These errors are most often caused by power failures or disk hardware failures that occur at the time the page is written to disk.

CHECKSUMCHECKSUM
Calcola un checksum sul contenuto dell'intera pagina e archivia il valore nell'intestazione della pagina quando questa viene scritta su disco.Calculates a checksum over the contents of the whole page and stores the value in the page header when a page is written to disk. In fase di lettura della pagina dal disco, il checksum viene ricalcolato e confrontato con il valore di checksum archiviato nell'intestazione della pagina.When the page is read from disk, the checksum is recomputed and compared to the checksum value stored in the page header. Se i valori non corrispondono, viene segnalato il messaggio di errore 824 (che indica un errore di checksum) sia nel log degli errori di SQL ServerSQL Server, sia nel registro eventi di Windows.If the values don't match, error message 824 (indicating a checksum failure) is reported to both the SQL ServerSQL Server error log and the Windows event log. Un errore di checksum indica un problema di percorso di I/O.A checksum failure indicates an I/O path problem. Per determinare la causa principale del problema, è necessaria un'analisi accurata di hardware, driver del firmware, BIOS, driver dei filtri, ad esempio software antivirus, e altri componenti del percorso di I/O.To determine the root cause requires investigation of the hardware, firmware drivers, BIOS, filter drivers (such as virus software), and other I/O path components.

TORN_PAGE_DETECTIONTORN_PAGE_DETECTION
Salva uno schema a 2 bit specifico per ogni settore da 512 byte della pagina di database da 8 KB e archivia tali schemi nell'intestazione della pagina del database quando questa viene scritta su disco.Saves a specific 2-bit pattern for each 512-byte sector in the 8-kilobyte (KB) database page and stored in the database page header when the page is written to disk. In fase di lettura della pagina dal disco, i bit per il rilevamento di pagine incomplete archiviati nell'intestazione della pagina vengono confrontati con le informazioni effettive sui settori della pagina.When the page is read from disk, the torn bits stored in the page header are compared to the actual page sector information.

La presenza di valori non corrispondenti indica che la pagina è stata scritta su disco solo in parte.Unmatched values indicate that only part of the page was written to disk. In questa situazione viene segnalato il messaggio di errore 824 (che indica un errore di pagina incompleta) sia nel log degli errori di SQL ServerSQL Server, sia nel registro eventi di Windows.In this situation, error message 824 (indicating a torn page error) is reported to both the SQL ServerSQL Server error log and the Windows event log. Le pagine incomplete vengono generalmente rilevate durante il recupero del database, se si tratta effettivamente di un problema di scrittura incompleta di una pagina.Torn pages are typically detected by database recovery if it is truly an incomplete write of a page. Altri errori di percorso di I/O possono tuttavia causare in qualsiasi momento pagine incomplete.However, other I/O path failures can cause a torn page at any time.

NessunoNONE
Le operazioni di scrittura di pagine di database non genereranno un valore CHECKSUM o TORN_PAGE_DETECTION.Database page writes won't generate a CHECKSUM or TORN_PAGE_DETECTION value. In SQL ServerSQL Server non viene eseguito alcun controllo del checksum o della presenza di pagine incomplete durante una lettura, anche se nell'intestazione della pagina è presente un valore CHECKSUM o TORN_PAGE_DETECTION.SQL ServerSQL Server will not verify a checksum or torn page during a read even if a CHECKSUM or TORN_PAGE_DETECTION value is present in the page header.

Per l'utilizzo dell'opzione PAGE_VERIFY, è importante tenere presente quanto segue:Consider the following important points when you use the PAGE_VERIFY option:

  • L'impostazione predefinita è CHECKSUM.The default is CHECKSUM.

  • Quando un utente o un database di sistema viene aggiornato a SQL Server 2005 (9.x)SQL Server 2005 (9.x) o versione successiva, il valore di PAGE_VERIFY, ovvero NONE o TORN_PAGE_DETECTION, rimane invariato.When a user or system database is upgraded to SQL Server 2005 (9.x)SQL Server 2005 (9.x) or a later version, the PAGE_VERIFY value (NONE or TORN_PAGE_DETECTION) is kept. È consigliabile usare CHECKSUM.We recommend that you use CHECKSUM.

    Nota

    Nelle versioni precedenti di SQL ServerSQL Server, l'opzione di database PAGE_VERIFY è impostata su NONE per il database tempdb e non può essere modificata.In earlier versions of SQL ServerSQL Server, the PAGE_VERIFY database option is set to NONE for the tempdb database and can't be modified. In SQL Server 2008SQL Server 2008 e versioni successive il valore predefinito per il database tempdb è CHECKSUM per le nuove installazioni di SQL ServerSQL Server.In SQL Server 2008SQL Server 2008 and later versions, the default value for the tempdb database is CHECKSUM for new installations of SQL ServerSQL Server. Quando si aggiorna un'installazione di SQL ServerSQL Server, viene mantenuto il valore predefinito NONE.When upgrading an installation SQL ServerSQL Server, the default value remains NONE. L'opzione può essere modificata.The option can be modified. È consigliabile utilizzare CHECKSUM per il database tempdb.We recommend that you use CHECKSUM for the tempdb database.

  • TORN_PAGE_DETECTION può consentire l'utilizzo di un numero più limitato di risorse, ma offre una protezione minore rispetto all'opzione CHECKSUM.TORN_PAGE_DETECTION may use fewer resources but provides a minimal subset of the CHECKSUM protection.

  • È possibile impostare PAGE_VERIFY senza attivare la modalità offline per il database, senza bloccarlo o senza impedire in altro modo la concorrenza nel database.PAGE_VERIFY can be set without taking the database offline, locking the database, or otherwise impeding concurrency on that database.

  • Le opzioni CHECKSUM e TORN_PAGE_DETECTION si escludono a vicenda.CHECKSUM is mutually exclusive to TORN_PAGE_DETECTION. Non è possibile abilitare contemporaneamente entrambe le opzioni.Both options can't be enabled at the same time.

Se viene rilevato un errore di pagina incompleta o di checksum, è possibile eseguire il recupero tramite il ripristino dei dati o potenzialmente tramite la ricompilazione dell'indice se l'errore è limitato alle pagine di indice.When a torn page or checksum failure is detected, you can recover by restoring the data or potentially rebuilding the index if the failure is limited only to index pages. Se si verifica un errore di checksum, eseguire DBCC CHECKDB per determinare il tipo della pagina o delle pagine del database interessate dal problema.If you encounter a checksum failure, to determine the type of database page or pages affected, run DBCC CHECKDB. Per altre informazioni sulle opzioni di ripristino, vedere Argomenti RESTORE.For more information about restore options, see RESTORE Arguments. Sebbene il ripristino dei dati consenta di risolvere il problema di danneggiamento dei dati, è necessario individuare il prima possibile la causa principale, ad esempio un errore hardware del disco, per eseguire i necessari interventi di correzione ed evitare che gli errori si ripresentino.Although restoring the data will resolve the data corruption problem, the root cause, for example, disk hardware failure, should be diagnosed and corrected as soon as possible to prevent continuing errors.

SQL ServerSQL Server esegue quattro tentativi per qualsiasi operazione di lettura non riuscita a causa di un errore di checksum, di pagina incompleta o di I/O.will retry any read that fails with a checksum, torn page, or other I/O error four times. Se la lettura riesce con uno dei tentativi, viene scritto un messaggio nel log degli errori.If the read is successful in any one of the retry attempts, a message is written to the error log. Il comando che ha attivato la lettura continuerà a essere eseguito.The command that triggered the read will continue. Se tutti i tentativi hanno esito negativo, il comando viene interrotto con il messaggio di errore 824.The command will fail with error message 824 if the retry attempts fail.

Per altre informazioni sui messaggi di errore 823, 824 e 825, vedere:For more information about error messages 823, 824 and 825, see:

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna page_verify_option nella vista del catalogo sys.databases oppure la proprietà IsTornPageDetectionEnabled della funzione DATABASEPROPERTYEX.The current setting of this option can be determined by examining the page_verify_option column in the sys.databases catalog view or the IsTornPageDetectionEnabled property of the DATABASEPROPERTYEX function.

<remote_data_archive_option> ::= <remote_data_archive_option> ::=
Si applica a: SQL ServerSQL Server (da SQL Server 2016 (13.x)SQL Server 2016 (13.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

Abilita o disabilita Stretch Database per il database.Enables or disables Stretch Database for the database. Per ulteriori informazioni, vedere Stretch Database.For more info, see Stretch Database.

REMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name> , { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } )| OFFREMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name> , { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } )| OFF
ONON
Abilita o disabilita Stretch Database per il database.Enables Stretch Database for the database. Per altre informazioni, inclusi i prerequisiti aggiuntivi, vedere Abilitare Stretch Database per un database.For more info, including additional prerequisites, see Enable Stretch Database for a database.

Autorizzazioni: Per abilitare Stretch Database in un database o in una tabella sono necessarie autorizzazioni db_owner.Permissions: Enabling Stretch Database for a database or a table requires db_owner permissions. Per abilitare Stretch Database in un database sono necessarie anche autorizzazioni CONTROL DATABASE.Enabling Stretch Database for a database also requires CONTROL DATABASE permissions.

SERVER = <server_name>SERVER = <server_name>
Specifica l'indirizzo del server di Azure.Specifies the address of the Azure server. Includere la parte .database.windows.net del nome.Include the .database.windows.net portion of the name. Ad esempio, MyStretchDatabaseServer.database.windows.net.For example, MyStretchDatabaseServer.database.windows.net.

CREDENTIAL = <db_scoped_credential_name>CREDENTIAL = <db_scoped_credential_name>
Specifica la credenziale con ambito database che l'istanza di SQL ServerSQL Server usa per connettersi al server di Azure.Specifies the database scoped credential that the instance of SQL ServerSQL Server uses to connect to the Azure server. Assicurarsi dell'esistenza della credenziale prima di eseguire questo comando.Make sure the credential exists before you run this command. Per altre informazioni, vedere CREATE DATABASE SCOPED CREDENTIAL.For more info, see CREATE DATABASE SCOPED CREDENTIAL.

FEDERATED_SERVICE_ACCOUNT = { ON | OFF }FEDERATED_SERVICE_ACCOUNT = { ON | OFF }
È possibile usare un account del servizio federato per SQL Server locale per comunicare con il server di Azure remoto quando vengono soddisfatte tutte le condizioni seguenti.You can use a federated service account for the on-premises SQL Server to communicate with the remote Azure server when the following conditions are all true.

  • L'account del servizio usato per l'esecuzione dell'istanza di SQL Server è un account di dominio.The service account under which the instance of SQL Server is running is a domain account.
  • L'account di dominio appartiene a un dominio il cui Active Directory è federato con Azure Active Directory.The domain account belongs to a domain whose Active Directory is federated with Azure Active Directory.
  • Il server Azure remoto è configurato per supportare l'autenticazione di Azure Active Directory.The remote Azure server is configured to support Azure Active Directory authentication.
  • L'account del servizio in cui è in esecuzione l'istanza di SQL Server deve essere configurato come account dbmanager o sysadmin nel server di Azure remoto.The service account under which the instance of SQL Server is running must be configured as a dbmanager or sysadmin account on the remote Azure server.

Se si specifica che l'account del servizio federato è impostato su ON, è anche possibile specificare l'argomento CREDENTIAL.If you specify that the federated service account is ON, you can't also specify the CREDENTIAL argument. Se si specifica OFF, è necessario fornire l'argomento CREDENTIAL.Provide the CREDENTIAL argument if you specify OFF.

OFFOFF
Disabilita Stretch Database per il database.Disables Stretch Database for the database. Per altre informazioni, vedere Disabilitare Stretch Database e ripristinare i dati remoti.For more info, see Disable Stretch Database and bring back remote data.

È possibile disabilitare Stretch Database per un database solo quando il database non contiene più tutte le tabelle abilitate per Stretch Database.You can only disable Stretch Database for a database after the database no longer contains any tables that are enabled for Stretch Database. Dopo aver disabilitato Stretch Database, la migrazione dei dati si interrompe.After you disable Stretch Database, data migration stops. Inoltre, i risultati delle query non includono più i risultati delle tabelle remote.Also, query results no longer include results from remote tables.

La disabilitazione di Stretch non comporta la rimozione del database remoto.Disabling Stretch doesn't remove the remote database. Se si vuole eliminare il database remoto, è necessario eliminarlo tramite il portale di Azure.If you want to delete the remote database, you have to drop it by using the Azure portal.

<service_broker_option> ::= <service_broker_option> ::=
Si applica a: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

Controlla le opzioni di Service BrokerService Broker seguenti, ovvero abilitazione o disabilitazione del recapito dei messaggi, impostazione di un nuovo identificatore di Service BrokerService Broker o impostazione delle priorità di conversazione su ON oppure OFF.Controls the following Service BrokerService Broker options: enables or disables message delivery, sets a new Service BrokerService Broker identifier, or sets conversation priorities to ON or OFF.

ENABLE_BROKERENABLE_BROKER
Indica che Service BrokerService Broker è abilitato per il database specificato.Specifies that Service BrokerService Broker is enabled for the specified database. Il recapito dei messaggi viene avviato e il flag is_broker_enabled viene impostato su true nella vista del catalogo sys.databases.Message delivery is started, and the is_broker_enabled flag is set to true in the sys.databases catalog view. Il database mantiene l'identificatore di Service BrokerService Broker esistente.The database keeps the existing Service BrokerService Broker identifier. Service Broker non può essere abilitato se il database è il database principale in una configurazione di mirroring.Service broker can't be enabled while the database is the principal in a database mirroring configuration.

Nota

ENABLE_BROKER richiede un blocco esclusivo a livello di database.ENABLE_BROKER requires an exclusive database lock. Se altre sessioni hanno bloccato risorse nel database, ENABLE_BROKER attende il rilascio dei blocchi da parte delle altre sessioni.If other sessions have locked resources in the database, ENABLE_BROKER will wait until the other sessions release their locks. Per abilitare Service BrokerService Broker in un database utente, accertarsi che nessun'altra sessione stia usando il database prima di eseguire l'istruzione ALTER DATABASE SET ENABLE_BROKER, ad esempio impostando il database in modalità utente singolo.To enable Service BrokerService Broker in a user database, ensure that no other sessions are using the database before you run the ALTER DATABASE SET ENABLE_BROKER statement, such as by putting the database in single user mode. Per abilitare Service BrokerService Broker nel database msdb, arrestare innanzitutto SQL ServerSQL Server Agent per consentire a Service BrokerService Broker di ottenere il blocco necessario.To enable Service BrokerService Broker in the msdb database, first stop SQL ServerSQL Server Agent so that Service BrokerService Broker can obtain the necessary lock.

DISABLE_BROKERDISABLE_BROKER
Indica che Service BrokerService Broker è disabilitato per il database specificato.Specifies that Service BrokerService Broker is disabled for the specified database. Il recapito dei messaggi viene arrestato e il flag is_broker_enabled viene impostato su false nella vista del catalogo sys.databases.Message delivery is stopped, and the is_broker_enabled flag is set to false in the sys.databases catalog view. Il database mantiene l'identificatore di Service BrokerService Broker esistente.The database keeps the existing Service BrokerService Broker identifier.

NEW_BROKERNEW_BROKER
Specifica che al database deve essere assegnato un nuovo identificatore di Service Broker.Specifies that the database should receive a new broker identifier. Il database funge da nuovo Service Broker.The database acts as a new service broker. Di conseguenza, tutte le conversazioni esistenti nel database vengono rimosse immediatamente senza generare messaggi di fine dialogo.As such, all existing conversations in the database are immediately removed without producing end dialog messages. Tutte le route che fanno riferimento all'identificatore di Service BrokerService Broker precedente devono essere ricreate con il nuovo identificatore.Any route that references the old Service BrokerService Broker identifier must be re-created with the new identifier.

ERROR_BROKER_CONVERSATIONSERROR_BROKER_CONVERSATIONS
Specifica che il recapito dei messaggi di Service BrokerService Broker è abilitato.Specifies that Service BrokerService Broker message delivery is enabled. Questa impostazione mantiene l'identificatore di Service BrokerService Broker esistente per il database.This setting preserves the existing Service BrokerService Broker identifier for the database. Service BrokerService Broker termina tutte le conversazioni nel database con un errore.ends all conversations in the database with an error. Questa impostazione consente alle applicazioni di eseguire operazioni regolari di pulizia per le conversazioni esistenti.This setting enables applications to run regular cleanup for existing conversations.

HONOR_BROKER_PRIORITY {ON | OFF}HONOR_BROKER_PRIORITY {ON | OFF}
ONON
Per le operazioni di invio vengono presi in considerazione i livelli di priorità assegnati alle conversazioni.Send operations take into consideration the priority levels that are assigned to conversations. I messaggi provenienti da conversazioni con livelli di priorità alti vengono inviati prima dei messaggi provenienti da conversazioni con livelli di priorità bassi.Messages from conversations that have high priority levels are sent before messages from conversations that are assigned low-priority levels.

OFFOFF
Le operazioni di invio vengono eseguite come se tutte le conversazioni avessero il livello di priorità predefinito.Send operations run as if all conversations have the default priority level.

Le modifiche all'opzione HONOR_BROKER_PRIORITY vengono applicate immediatamente ai nuovi dialoghi o ai dialoghi per cui non vi sono messaggi in attesa di essere inviati.Changes to the HONOR_BROKER_PRIORITY option take effect immediately for new dialogs or dialogs that have no messages waiting to be sent. Per i dialoghi con messaggi da inviare al momento dell'esecuzione di ALTER DATABASE, la nuova impostazione verrà applicata solo quando verranno inviati alcuni messaggi del dialogo.Dialogs with messages to be sent when ALTER DATABASE is run won't pick up the new setting until some of the messages for the dialog are sent. La quantità di tempo che deve trascorrere prima che la nuova impostazione venga usata per tutti i dialoghi può variare notevolmente.The amount of time before all dialogs start using the new setting can vary considerably.

L'impostazione corrente di questa proprietà è indicata nella colonna is_broker_priority_honored nella vista del catalogo sys.databases.The current setting of this property is reported in the is_broker_priority_honored column in the sys.databases catalog view.

<snapshot_option> ::=<snapshot_option> ::=

Calcola il livello di isolamento delle transazioni.Calculates the transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION { ON | OFF }ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ONON
Abilita l'opzione Snapshot a livello di database.Enables Snapshot option at the database level. Quando è abilitata, le istruzioni DML iniziano la generazione di versioni di riga anche quando nessuna transazione usano l'isolamento dello snapshot.When it is enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. Una volta abilitata l'opzione, le transazioni possono specificare il livello di isolamento della transazione SNAPSHOT.Once this option is enabled, transactions can specify the SNAPSHOT transaction isolation level. Nelle transazioni eseguite con il livello di isolamento SNAPSHOT, tutte le istruzioni possono accedere a uno snapshot dei dati corrispondente allo stato dei dati al momento dell'avvio della transazione.When a transaction runs at the SNAPSHOT isolation level, all statements see a snapshot of data as it exists at the start of the transaction. Se una transazione eseguita con il livello di isolamento SNAPSHOT deve accedere ai dati in più database, è necessario impostare ALLOW_SNAPSHOT_ISOLATION su ON in tutti i database oppure ogni istruzione della transazione deve usare hint di blocco per qualsiasi riferimento in una clausola FROM a una tabella di un database per cui l'opzione ALLOW_SNAPSHOT_ISOLATION è impostata su OFF.If a transaction running at the SNAPSHOT isolation level accesses data in multiple databases, either ALLOW_SNAPSHOT_ISOLATION must be set to ON in all the databases, or each statement in the transaction must use locking hints on any reference in a FROM clause to a table in a database where ALLOW_SNAPSHOT_ISOLATION is OFF.

OFFOFF
Consente di disabilitare l'opzione relativa allo snapshot a livello di database.Turns off the Snapshot option at the database level. Per le transazioni non può essere impostato il livello di isolamento SNAPSHOT.Transactions can't specify the SNAPSHOT transaction isolation level.

Quando si imposta un nuovo stato per l'opzione ALLOW_SNAPSHOT_ISOLATION (da ON a OFF oppure da OFF a ON), ALTER DATABASE restituisce il controllo al chiamante solo dopo il completamento del commit di tutte le transazioni esistenti nel database.When you set ALLOW_SNAPSHOT_ISOLATION to a new state (from ON to OFF, or from OFF to ON), ALTER DATABASE doesn't return control to the caller until all existing transactions in the database are committed. Se per il database è già attivo lo stato specificato nell'istruzione ALTER DATABASE, il controllo viene restituito immediatamente al chiamante.If the database is already in the state specified in the ALTER DATABASE statement, control is returned to the caller immediately. Se l'istruzione ALTER DATABASE non restituisce il controllo rapidamente, usare sys.dm_tran_active_snapshot_database_transactions per verificare se sono presenti transazioni con esecuzione prolungata.If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Se l'istruzione ALTER DATABASE viene annullata, il database rimane nello stato attivo al momento dell'avvio dell'istruzione ALTER DATABASE.If the ALTER DATABASE statement is canceled, the database remains in the state it was in when ALTER DATABASE was started. La vista del catalogo sys.databases indica lo stato delle transazioni di isolamento dello snapshot nel database.The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Se snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF attenderà sei secondi prima di ritentare l'operazione.If snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF will pause six seconds and retry the operation.

Non è possibile cambiare lo stato di ALLOW_SNAPSHOT_ISOLATION se il database è OFFLINE.You can't change the state of ALLOW_SNAPSHOT_ISOLATION if the database is OFFLINE.

Se si imposta ALLOW_SNAPSHOT_ISOLATION in un database READ_ONLY, tale impostazione viene mantenuta anche se il database viene in seguito impostato su READ_WRITE.If you set ALLOW_SNAPSHOT_ISOLATION in a READ_ONLY database, the setting will be kept if the database is later set to READ_WRITE.

È possibile modificare le impostazioni di ALLOW_SNAPSHOT_ISOLATION per i database master, model, msdb e tempdb.You can change the ALLOW_SNAPSHOT_ISOLATION settings for the master, model, msdb, and tempdb databases. Se si cambia l'impostazione per il database tempdb, tale impostazione viene mantenuta ogni volta che l'istanza del Motore di databaseDatabase Engine viene arrestata e riavviata.The setting is kept every time the instance of the Motore di databaseDatabase Engine is stopped and restarted if you change the setting for tempdb. Se si modifica l'impostazione per il database model, questa diventa l'impostazione predefinita per i nuovi database creati, con l'eccezione di tempdb.If you change the setting for model, that setting becomes the default for any new databases that are created, except for tempdb.

L'impostazione predefinita dell'opzione è ON per i database master e msdb.The option is ON, by default, for the master and msdb databases.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna snapshot_isolation_state nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the snapshot_isolation_state column in the sys.databases catalog view.

READ_COMMITTED_SNAPSHOT { ON | OFF }READ_COMMITTED_SNAPSHOT { ON | OFF }
ONON
Abilita l'opzione relativa allo snapshot Read Committed a livello di database.Enables Read-Committed Snapshot option at the database level. Se questa opzione è abilitata, le istruzioni DML iniziano a generare versioni di riga anche quando nessuna transazione usa l'isolamento dello snapshot.When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. Una volta abilitata questa opzione, le transazioni che specificano il livello di isolamento Read committed usano il controllo delle versioni delle righe anziché il blocco.Once this option is enabled, the transactions specifying the read committed isolation level use row versioning instead of locking. Quando una transazione viene eseguita con il livello di isolamento Read Committed, tutte le istruzioni vedono uno snapshot dei dati nello stato in cui si trovano all'avvio dell'istruzione.All statements see a snapshot of data as it exists at the start of the statement when a transaction runs at the read committed isolation level.

OFFOFF
Disabilita l'opzione relativa allo snapshot Read Committed a livello di database.Turns off Read-Committed Snapshot option at the database level. Le transazioni per cui è impostato il livello di isolamento READ COMMITTED usano il blocco.Transactions specifying the READ COMMITTED isolation level use locking.

Per impostare READ_COMMITTED_SNAPSHOT su ON oppure OFF, è necessario che non siano presenti connessioni attive al database, ad eccezione della connessione usata per eseguire il comando ALTER DATABASE.To set READ_COMMITTED_SNAPSHOT ON or OFF, there must be no active connections to the database except for the connection executing the ALTER DATABASE command. Non è tuttavia necessario che il database sia in modalità utente singolo.However, the database doesn't have to be in single-user mode. Non è possibile cambiare lo stato di questa opzione quando il database è OFFLINE.You can't change the state of this option when the database is OFFLINE.

Se si imposta READ_COMMITTED_SNAPSHOT in un database READ_ONLY, tale impostazione viene mantenuta anche se il database viene in seguito impostato su READ_WRITE.If you set READ_COMMITTED_SNAPSHOT in a READ_ONLY database, the setting will be kept when the database is later set to READ_WRITE.

Non è possibile impostare READ_COMMITTED_SNAPSHOT su ON per i database di sistema master, tempdb o msdb.READ_COMMITTED_SNAPSHOT can't be turned ON for the master, tempdb, or msdb system databases. Se si modifica l'impostazione per il database model, questa diventa l'impostazione predefinita per i nuovi database creati, con l'eccezione di tempdb.If you change the setting for model, that setting becomes the default for any new databases created, except for tempdb.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna is_read_committed_snapshot_on nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the is_read_committed_snapshot_on column in the sys.databases catalog view.

Avviso

Quando si crea una tabella con DURABILITY = SCHEMA_ONLY, e successivamente si modifica READ_COMMITTED_SNAPSHOT usando ALTER DATABASE, i dati della tabella andranno perduti.When a table is created with DURABILITY = SCHEMA_ONLY, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE, data in the table will be lost.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
Si applica a: SQL ServerSQL Server (da SQL Server 2014 (12.x)SQL Server 2014 (12.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017)

ONON
Quando l'isolamento della transazione è impostato su un livello inferiore a SNAPSHOT, tutte le operazioni interpretate di Transact-SQLTransact-SQL nelle tabelle ottimizzate per la memoria vengono eseguite con l'isolamento SNAPSHOT.When the transaction isolation level is set to any isolation level lower than SNAPSHOT, all interpreted Transact-SQLTransact-SQL operations on memory-optimized tables are run under SNAPSHOT isolation. I livelli di isolamento inferiori a SNAPSHOT sono, ad esempio, READ COMMITTED e READ UNCOMMITTED.Examples of isolation levels lower than snapshot are READ COMMITTED or READ UNCOMMITTED. Queste operazioni vengono eseguite indipendentemente dal fatto che venga impostato in modo esplicito il livello di isolamento della transazione a livello di sessione o che venga usata in modo implicito l'impostazione predefinita.These operations run whether the transaction isolation level is set explicitly at the session level, or the default is used implicitly.

OFFOFF
Non eleva il livello di isolamento della transazione per le operazioni interpretate di Transact-SQLTransact-SQL nelle tabelle ottimizzate per la memoria.Doesn't elevate the transaction isolation level for interpreted Transact-SQLTransact-SQL operations on memory-optimized tables.

Non è possibile cambiare lo stato di MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT se il database è OFFLINE.You can't change the state of MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT if the database is OFFLINE.

L'impostazione predefinita è OFF.The default option is OFF.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna memory_optimized_elevate_to_snapshot nella vista del catalogo sys.database.The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on column in the sys.databases catalog view.

<sql_option> ::=<sql_option> ::=

Controlla le opzioni di conformità ANSI a livello di database.Controls the ANSI compliance options at the database level.

ANSI_NULL_DEFAULT { ON | OFF }ANSI_NULL_DEFAULT { ON | OFF }
Determina il valore predefinito, NULL o NOT NULL, per una colonna o un tipo CLR definito dall'utente per cui il supporto dei valori Null non è definito in modo esplicito nell'istruzione CREATE TABLE o ALTER TABLE.Determines the default value, NULL or NOT NULL, of a column or CLR user-defined type for which the nullability isn't explicitly defined in CREATE TABLE or ALTER TABLE statements. Le colonne definite con vincoli seguono le regole dei vincoli indipendentemente da questa impostazione.Columns that are defined with constraints follow constraint rules whatever this setting may be.

ONON
Il valore predefinito è NULL.The default value is NULL.

OFFOFF
Il valore predefinito è NOT NULL.The default value is NOT NULL.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_NULL_DEFAULT.Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_NULL_DEFAULT. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_NULL_DEFAULT su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULL_DEFAULT to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_NULL_DFLT_ON.For more information, see SET ANSI_NULL_DFLT_ON.

Per motivi di compatibilità con ANSI, l'impostazione dell'opzione di database ANSI_NULL_DEFAULT su ON modifica l'impostazione predefinita del database su NULL.For ANSI compatibility, setting the database option ANSI_NULL_DEFAULT to ON changes the database default to NULL.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_null_default_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_null_default_on column in the sys.databases catalog view. oppure la proprietà IsAnsiNullDefault della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiNullDefault property of the DATABASEPROPERTYEX function.

ANSI_NULLS { ON | OFF }ANSI_NULLS { ON | OFF }
ONON
Tutti i confronti con un valore Null restituiscono UNKNOWN.All comparisons to a null value evaluate to UNKNOWN.

OFFOFF
I confronti di valori non UNICODE con un valore Null restituiscono TRUE se entrambi i valori sono NULL.Comparisons of non-UNICODE values to a null value evaluate to TRUE if both values are NULL.

Importante

In una versione futura di SQL ServerSQL Server, ANSI_NULLS sarà sempre impostata su ON e qualsiasi applicazione che imposta tale opzione in modo esplicito su OFF genererà un errore.In a future version of SQL ServerSQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_NULLS.Connection-level settings that are set by using the SET statement override the default database setting for ANSI_NULLS. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_NULLS su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULLS to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_NULLS.For more information, see SET ANSI_NULLS.

È inoltre necessario che l'opzione SET ANSI_NULLS sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ANSI_NULLS also must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_nulls_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_nulls_on column in the sys.databases catalog view. oppure la proprietà IsAnsiNullsEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiNullsEnabled property of the DATABASEPROPERTYEX function.

ANSI_PADDING { ON | OFF }ANSI_PADDING { ON | OFF }
ONON
Le stringhe vengono riempite in modo che abbiano tutte la stessa lunghezza prima della conversione.Strings are padded to the same length before conversion. o dell'inserimento in un tipo di dati varchar o nvarchar.Also padded to the same length before inserting to a varchar or nvarchar data type.

OFFOFF
Vengono inseriti spazi vuoti finali nei valori di tipo carattere in colonne di tipo varchar o nvarchar.Inserts trailing blanks in character values into varchar or nvarchar columns. Vengono inoltre lasciati gli zeri finali nei valori binari inseriti nelle colonne di tipo varbinary.Also leaves trailing zeros in binary values that are inserted into varbinary columns. I valori non vengono riempiti per l'intera lunghezza della colonna.Values aren't padded to the length of the column.

Se si specifica OFF, questa impostazione ha effetto solo sulla definizione di nuove colonne.When OFF is specified, this setting affects only the definition of new columns.

Importante

In una versione futura di SQL ServerSQL Server, ANSI_PADDING sarà sempre impostata su ON e qualsiasi applicazione che imposta tale opzione in modo esplicito su OFF genererà un errore.In a future version of SQL ServerSQL Server, ANSI_PADDING will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. È consigliabile impostare l'opzione ANSI_PADDING sempre su ON.We recommend that you always set ANSI_PADDING to ON. È necessario che l'opzione ANSI_PADDING sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.ANSI_PADDING must be ON when you create or manipulate indexes on computed columns or indexed views.

Le colonne char(n) e binary(n) che consentono valori Null vengono riempite fino alla loro lunghezza quando ANSI_PADDING è impostata su ON.char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. I valori vuoti e gli zeri finali vengono eliminati quando ANSI_PADDING è impostata su OFF.Trailing blanks and zeros are trimmed when ANSI_PADDING is OFF. Le colonne char(n) e binary(n) che non consentono valori Null vengono sempre riempite fino alla loro lunghezza.char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_PADDING.Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_PADDING. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_PADDING su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_PADDING to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_PADDING.For more information, see SET ANSI_PADDING.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_padding_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_padding_on column in the sys.databases catalog view. oppure la proprietà IsAnsiPaddingEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiPaddingEnabled property of the DATABASEPROPERTYEX function.

ANSI_WARNINGS { ON | OFF }ANSI_WARNINGS { ON | OFF }
ONON
Vengono restituiti messaggi di errore o di avviso quando si verificano condizioni come la divisione per zeroErrors or warnings are issued when conditions such as divide-by-zero occur. e inoltre quando nelle funzioni di aggregazione sono presenti valori Null.Errors and warnings are also issued when null values appear in aggregate functions.

OFFOFF
Non vengono generati avvisi e vengono restituiti valori Null quando si verificano condizioni come la divisione per zero.No warnings are raised and null values are returned when conditions such as divide-by-zero occur.

È necessario che l'opzione ANSI_WARNINGS sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ANSI_WARNINGS must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_WARNINGS.Connection-level settings that are set by using the SET statement override the default database setting for ANSI_WARNINGS. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_WARNINGS su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_WARNINGS to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_WARNINGS.For more information, see SET ANSI_WARNINGS.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_warnings_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_warnings_on column in the sys.databases catalog view. oppure la proprietà IsAnsiWarningsEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiWarningsEnabled property of the DATABASEPROPERTYEX function.

ARITHABORT { ON | OFF }ARITHABORT { ON | OFF }
ONON
Interrompe una query quando si verifica un overflow o un errore di divisione per zero durante l'esecuzione della query stessa.A query is ended when an overflow or divide-by-zero error occurs during query execution.

OFFOFF
Quando si verifica uno di questi errori, viene visualizzato un messaggio di avviso.A warning message is displayed when one of these errors occurs. L'esecuzione della query, del batch o della transazione prosegue come se non si fosse verificato alcun errore, anche se viene visualizzato un messaggio di avviso.The query, batch, or transaction continues to process as if no error occurred even if a warning is displayed.

È necessario che l'opzione ARITHABORT sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ARITHABORT must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_arithabort_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_arithabort_on column in the sys.databases catalog view. oppure la proprietà IsArithmeticAbortEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsArithmeticAbortEnabled property of the DATABASEPROPERTYEX function.

COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }

Per altre informazioni, vedere Livello di compatibilità ALTER DATABASE.For more information, see ALTER DATABASE Compatibility Level.

CONCAT_NULL_YIELDS_NULL { ON | OFF }CONCAT_NULL_YIELDS_NULL { ON | OFF }
ONON
Il risultato di un'operazione di concatenazione è NULL quando uno degli operandi è NULL.The result of a concatenation operation is NULL when either operand is NULL. La concatenazione della stringa di caratteri "Questo è" con NULL restituisce, ad esempio, il valore NULL anziché il valore "Questo è".For example, concatenating the character string "This is" and NULL causes the value NULL, instead of the value "This is".

OFFOFF
Il valore Null viene considerato come una stringa di caratteri vuota.The null value is treated as an empty character string.

È necessario che l'opzione CONCAT_NULL_YIELDS_NULL sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.CONCAT_NULL_YIELDS_NULL must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Importante

In una versione futura di SQL ServerSQL Server, l'opzione CONCAT_NULL_YIELDS_NULL sarà sempre impostata su ON e qualsiasi applicazione che la imposta in modo esplicito su OFF restituirà un errore.In a future version of SQL ServerSQL Server, CONCAT_NULL_YIELDS_NULL will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per CONCAT_NULL_YIELDS_NULL.Connection-level settings that are set by using the SET statement override the default database setting for CONCAT_NULL_YIELDS_NULL. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta CONCAT_NULL_YIELDS_NULL su ON per la sessione quando viene stabilita una connessione a un'istanza di SQL ServerSQL Server.By default, ODBC and OLE DB clients issue a connection-level SET statement setting CONCAT_NULL_YIELDS_NULL to ON for the session when connecting to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET CONCAT_NULL_YIELDS_NULL.For more information, see SET CONCAT_NULL_YIELDS_NULL.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_concat_null_yields_null_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_concat_null_yields_null_on column in the sys.databases catalog view. oppure la proprietà IsNullConcat della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsNullConcat property of the DATABASEPROPERTYEX function.

QUOTED_IDENTIFIER { ON | OFF }QUOTED_IDENTIFIER { ON | OFF }
ONON
È possibile delimitare gli identificatori delimitati racchiudendoli tra virgolette doppie.Double quotation marks can be used to enclose delimited identifiers.

Tutte le stringhe delimitate da virgolette doppie vengono interpretate come identificatori di oggetto.All strings delimited by double quotation marks are interpreted as object identifiers. Gli identificatori delimitati non devono necessariamente essere conformi alle regole di Transact-SQLTransact-SQL per gli identificatori.Quoted identifiers don't have to follow the Transact-SQLTransact-SQL rules for identifiers. Possono essere parole chiave e includere caratteri normalmente non consentiti negli identificatori di Transact-SQLTransact-SQL.They can be keywords and can include characters not allowed in Transact-SQLTransact-SQL identifiers. Se una virgoletta singola (') fa parte della stringa letterale, può essere rappresentata tramite virgolette doppie (").If a single quotation mark (') is part of the literal string, it can be represented by double quotation marks (").

OFFOFF
Gli identificatori non possono essere delimitati da virgolette e devono rispettare tutte le regole di Transact-SQLTransact-SQL per gli identificatori.Identifiers can't be in quotation marks and must follow all Transact-SQLTransact-SQL rules for identifiers. È possibile delimitare i valori letterali con virgolette singole o doppie.Literals can be delimited by either single or double quotation marks.

SQL ServerSQL Server consente inoltre di racchiudere gli identificatori tra parentesi quadre ([ ]).also allows for identifiers to be delimited by square brackets ([ ]). Gli identificatori tra parentesi quadre possono essere sempre usati, indipendentemente dall'impostazione di QUOTED_IDENTIFIER.Bracketed identifiers can always be used, whatever the QUOTED_IDENTIFIER setting is. Per altre informazioni, vedere Identificatori del database.For more information, see Database Identifiers.

Quando viene creata una tabella, l'opzione QUOTED IDENTIFIER viene sempre archiviata con l'impostazione ON nei relativi metadati,When a table is created, the QUOTED IDENTIFIER option is always stored as ON in the metadata of the table. anche se l'opzione è impostata su OFF.The option is stored even if the option is set to OFF when the table is created.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per QUOTED_IDENTIFIER.Connection-level settings that are set by using the SET statement override the default database setting for QUOTED_IDENTIFIER. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta QUOTED_IDENTIFIER.ODBC and OLE DB clients issue a connection-level SET statement setting QUOTED_IDENTIFIER to ON, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET QUOTED_IDENTIFIER.For more information, see SET QUOTED_IDENTIFIER.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_quoted_identifier_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_quoted_identifier_on column in the sys.databases catalog view. oppure la proprietà IsQuotedIdentifiersEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsQuotedIdentifiersEnabled property of the DATABASEPROPERTYEX function.

NUMERIC_ROUNDABORT { ON | OFF }NUMERIC_ROUNDABORT { ON | OFF }
ONON
Viene generato un errore quando si verifica una perdita di precisione in un'espressione.An error is generated when loss of precision occurs in an expression.

OFFOFF
La perdita di precisione non genera messaggi di errore e il risultato viene arrotondato alla precisione della colonna o della variabile in cui viene archiviato.Losses of precision don't generate error messages and the result is rounded to the precision of the column or variable storing the result.

È necessario che l'opzione NUMERIC_ROUNDABORT sia impostata su OFF quando vengono creati o modificati indici in colonne calcolate o viste indicizzate.NUMERIC_ROUNDABORT must be set to OFF when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_numeric_roundabort_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_numeric_roundabort_on column in the sys.databases catalog view. oppure la proprietà IsNumericRoundAbortEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsNumericRoundAbortEnabled property of the DATABASEPROPERTYEX function.

RECURSIVE_TRIGGERS { ON | OFF }RECURSIVE_TRIGGERS { ON | OFF }
ONON
È consentita l'attivazione ricorsiva di trigger AFTER.Recursive firing of AFTER triggers is allowed.

OFFOFF
Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_recursive_triggers_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view. oppure la proprietà IsRecursiveTriggersEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

Nota

Se l'opzione RECURSIVE_TRIGGERS è impostata su OFF, viene impedita esclusivamente la ricorsione diretta.Only direct recursion is prevented when RECURSIVE_TRIGGERS is set to OFF. Per disabilitare la ricorsione indiretta, è necessario impostare anche l'opzione del server nested triggers su 0.To disable indirect recursion, you must also set the nested triggers server option to 0.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_recursive_triggers_on nella vista del catalogo sys.databases oppure la proprietà IsRecursiveTriggersEnabled della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view or the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

<target_recovery_time_option> ::= <target_recovery_time_option> ::=
Si applica a: SQL ServerSQL Server (da SQL Server 2012 (11.x)SQL Server 2012 (11.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

Specifica la frequenza di checkpoint indiretti per database singolo.Specifies the frequency of indirect checkpoints on a per-database basis. A partire da SQL Server 2016 (13.x)SQL Server 2016 (13.x), il valore predefinito per i nuovi database è 1 minuto, a indicare che il database userà checkpoint indiretti.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database will use indirect checkpoints. Per le versioni precedenti, il valore predefinito è 0, a indicare che il database userà checkpoint automatici la cui frequenza dipende dall'impostazione dell'intervallo di recupero dell'istanza del server.For older versions the default is 0, which indicates that the database will use automatic checkpoints, whose frequency depends on the recovery interval setting of the server instance. MicrosoftMicrosoft consiglia di usare 1 minuto per la maggior parte dei sistemi.recommends 1 minute for most systems.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
target_recovery_time target_recovery_time
Specifica il limite massimo di tempo per recuperare il database specificato in caso di un arresto anomalo del sistema.Specifies the maximum bound on the time to recover the specified database in the event of a crash. target_recovery_time è di tipo int.target_recovery_time is type int.

SECONDSSECONDS
Indica che target_recovery_time viene espresso come numero di secondi.Indicates that target_recovery_time is expressed as the number of seconds.

MINUTESMINUTES
Indica che target_recovery_time viene espresso come numero di minuti.Indicates that target_recovery_time is expressed as the number of minutes.

Per altre informazioni sui checkpoint indiretti, vedere Checkpoint di database.For more information about indirect checkpoints, see Database Checkpoints.

WITH <termination> ::=WITH <termination> ::=

Specifica quando eseguire il rollback di transazioni incomplete in caso di transizione dello stato del database.Specifies when to roll back incomplete transactions when the database is transitioned from one state to another. Se questa clausola viene omessa, l'attesa da parte dell'istruzione ALTER DATABASE è illimitata in presenza di qualsiasi blocco attivo sul database.If the termination clause is omitted, the ALTER DATABASE statement waits indefinitely if there's any lock on the database. È possibile specificare una sola clausola di terminazione, che deve seguire le clausole SET.Only one termination clause can be specified, and it follows the SET clauses.

Nota

Non tutte le opzioni di database usano la clausola WITH <termination>.Not all database options use the WITH <termination> clause. Per altre informazioni, vedere la tabella in "Impostazione delle opzioni" nella sezione "Osservazioni" di questo articolo.For more information, see the table under "Setting Options of the "Remarks" section of this article.

ROLLBACK AFTER number [SECONDS] | ROLLBACK IMMEDIATEROLLBACK AFTER number [SECONDS] | ROLLBACK IMMEDIATE

Specifica se eseguire il rollback dopo il numero di secondi specificato o immediatamente.Specifies whether to roll back after the specified number of seconds or immediately. number è di tipo int.number is type int.

NO_WAITNO_WAIT
Specifica che la richiesta ha esito negativo se non è possibile completare immediatamente la modifica richiesta dello stato del database o dell'opzione,Specifies that the request will fail if the requested database state or option change can't complete immediately. senza aspettare il commit o il rollback automatico delle transazioni.Completing immediately means not waiting for transactions to commit or roll back on their own.

Impostazione delle opzioniSetting Options

Per recuperare le impostazioni correnti delle opzioni di database, usare la vista del catalogo sys.databases o DATABASEPROPERTYEXTo retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX

Dopo avere impostato un'opzione di database, la modifica diventa effettiva immediatamente.After you set a database option, the modification takes effect immediately.

Per cambiare i valori predefiniti di qualsiasi opzione di database per tutti i nuovi database,You can change the default values for any one of the database options for all newly created databases. cambiare l'opzione appropriata nel database modello.To do so, change the appropriate database option in the model database.

Non tutte le opzioni di database usano la clausola WITH <termination> o possono essere specificate in combinazione con altre opzioni.Not all database options use the WITH <termination> clause or can be specified in combination with other options. Nella tabella seguente sono elencate tali opzioni con indicazione del supporto della clausola di terminazione o dell'impostazione in combinazione con altre opzioni.The following table lists these options and their option and termination status.

Categoria di opzioniOptions category Impostazione in combinazione con altre opzioniCan be specified with other options Supporto della clausola WITH <termination>Can use the WITH <termination> clause
<db_state_option><db_state_option> Yes Yes
<db_user_access_option><db_user_access_option> Yes Yes
<db_update_option><db_update_option> Yes Yes
<delayed_durability_option><delayed_durability_option> Yes Yes
<external_access_option><external_access_option> Yes noNo
<cursor_option><cursor_option> Yes noNo
<auto_option><auto_option> Yes noNo
<sql_option><sql_option> Yes noNo
<recovery_option><recovery_option> Yes noNo
<target_recovery_time_option><target_recovery_time_option> noNo Yes
<database_mirroring_option><database_mirroring_option> noNo noNo
ALLOW_SNAPSHOT_ISOLATIONALLOW_SNAPSHOT_ISOLATION noNo noNo
READ_COMMITTED_SNAPSHOTREAD_COMMITTED_SNAPSHOT noNo Yes
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOTMEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Yes Yes
<service_broker_option><service_broker_option> Yes noNo
DATE_CORRELATION_OPTIMIZATIONDATE_CORRELATION_OPTIMIZATION Yes Yes
<parameterization_option><parameterization_option> Yes Yes
<change_tracking_option><change_tracking_option> Yes Yes
<db_encryption_option><db_encryption_option> Yes noNo

La cache dei piani per l'istanza di SQL ServerSQL Server viene cancellata quando si imposta una delle opzioni seguenti:The plan cache for the instance of SQL ServerSQL Server is cleared by setting one of the following options:

OFFLINEOFFLINE READ_WRITEREAD_WRITE
ONLINEONLINE MODIFY FILEGROUP DEFAULTMODIFY FILEGROUP DEFAULT
MODIFY_NAMEMODIFY_NAME MODIFY FILEGROUP READ_WRITEMODIFY FILEGROUP READ_WRITE
COLLATECOLLATE MODIFY FILEGROUP READ_ONLYMODIFY FILEGROUP READ_ONLY
READ_ONLYREAD_ONLY

La cache delle procedure viene inoltre scaricata negli scenari seguenti.The procedure cache is also flushed in the following scenarios.

  • L'opzione AUTO_CLOSE di un database è impostata su ON.A database has the AUTO_CLOSE database option set to ON. Se il database non viene utilizzato da alcuna connessione utente, neanche come riferimento, tramite l'attività in background viene effettuato il tentativo di chiusura e di arresto automatici del database.When no user connection references or uses the database, the background task tries to close and shut down the database automatically.
  • Vengono eseguite diverse query su un database contenente opzioni predefinite.You run several queries against a database that has default options. Successivamente, il database viene eliminato.Then, the database is dropped.
  • Viene eliminato uno snapshot del database per un database di origine.A database snapshot for a source database is dropped.
  • Viene ricompilato correttamente il log delle transazioni per un database.You successfully rebuild the transaction log for a database.
  • Viene ripristinato un backup del database.You restore a database backup.
  • Viene scollegato un database.You detach a database.

La cancellazione della cache dei piani comporta la ricompilazione di tutti i piani di esecuzione successivi e può causare un peggioramento improvviso e temporaneo delle prestazioni di esecuzione delle query.Clearing the plan cache causes a recompilation of all subsequent execution plans and can cause a sudden, temporary decrease in query performance. Il log degli errori di SQL ServerSQL Server contiene il messaggio informativo seguente per ogni archivio cache cancellato nella cache dei piani: "SQL ServerSQL Server ha rilevato %d occorrenza/e di scaricamento dell'archivio cache '%s' (parte della cache dei piani) a causa di operazioni di manutenzione o riconfigurazione del database".For each cleared cachestore in the plan cache, the SQL ServerSQL Server error log contains the following informational message: " SQL ServerSQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations". Questo messaggio viene registrato ogni cinque minuti per tutta la durata dello scaricamento della cache.This message is logged every five minutes as long as the cache is flushed within that time interval.

EsempiExamples

A.A. Impostazione di opzioni in un databaseSetting options on a database

Nell'esempio seguente vengono impostate le opzioni relative al modello di recupero e alla verifica delle pagine di dati per il database di esempio AdventureWorks2012AdventureWorks2012.The following example sets the recovery model and data page verification options for the AdventureWorks2012AdventureWorks2012 sample database.

USE master;
GO
ALTER DATABASE AdventureWorks2012
SET RECOVERY FULL PAGE_VERIFY CHECKSUM;
GO

B.B. Impostazione del database su READ_ONLYSetting the database to READ_ONLY

Per modificare lo stato di un database o di un filegroup impostandolo su READ_ONLY o READ_WRITE, è necessario l'accesso esclusivo al database.Changing the state of a database or filegroup to READ_ONLY or READ_WRITE requires exclusive access to the database. Nell'esempio seguente viene impostata la modalità SINGLE_USER per il database in modo da ottenere l'accesso esclusivo.The following example sets the database to SINGLE_USER mode to obtain exclusive access. Nell'esempio lo stato del database AdventureWorks2012AdventureWorks2012 viene quindi impostato su READ_ONLY e viene ripristinato l'accesso al database per tutti gli utenti.The example then sets the state of the AdventureWorks2012AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.

Nota

In questo esempio viene usata l'opzione di terminazione WITH ROLLBACK IMMEDIATE nella prima istruzione ALTER DATABASE.This example uses the termination option WITH ROLLBACK IMMEDIATE in the first ALTER DATABASE statement. Verrà eseguito il rollback di tutte le transazioni incomplete e tutte le altre connessioni al database di esempio AdventureWorks2012AdventureWorks2012 verranno interrotte immediatamente.All incomplete transactions will be rolled back and any other connections to the AdventureWorks2012AdventureWorks2012 database will be immediately disconnected.

USE master;
GO
ALTER DATABASE AdventureWorks2012
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE AdventureWorks2012
SET READ_ONLY
GO
ALTER DATABASE AdventureWorks2012
SET MULTI_USER;
GO

C.C. Abilitazione dell'isolamento dello snapshot in un databaseEnabling snapshot isolation on a database

Nell'esempio seguente viene abilitata l'opzione relativa al framework di isolamento dello snapshot per il database AdventureWorks2012AdventureWorks2012.The following example enables the snapshot isolation framework option for the AdventureWorks2012AdventureWorks2012 database.

USE AdventureWorks2012;
USE master;
GO
ALTER DATABASE AdventureWorks2012
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'AdventureWorks2012';
GO

Il set di risultati indica che il framework di isolamento dello snapshot è abilitato.The result set shows that the snapshot isolation framework is enabled.

NAMEname snapshot_isolation_statesnapshot_isolation_state descriptiondescription
AdventureWorks2012AdventureWorks2012 11 ONON

D.D. Abilitazione, modifica e disabilitazione del rilevamento delle modificheEnabling, modifying, and disabling change tracking

Nell'esempio seguente viene abilitato il rilevamento delle modifiche per il database AdventureWorks2012AdventureWorks2012 e il periodo di memorizzazione viene impostato su 2 giorni.The following example enables change tracking for the AdventureWorks2012AdventureWorks2012 database and sets the retention period to 2 days.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

Nell'esempio seguente viene illustrato come modificare il periodo di memorizzazione impostandolo su 3 giorni.The following example shows how to change the retention period to 3 days.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

Nell'esempio seguente viene illustrato come disabilitare il rilevamento delle modifiche per il database AdventureWorks2012AdventureWorks2012.The following example shows how to disable change tracking for the AdventureWorks2012AdventureWorks2012 database.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = OFF;

E.E. Abilitazione dell'archivio di queryEnabling the query store

Si applica a: SQL ServerSQL Server (da SQL Server 2016 (13.x)SQL Server 2016 (13.x) a SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server ( SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

L'esempio seguente abilita l'archivio di query e configura i relativi parametri.The following example enables the query store and configures query store parameters.

ALTER DATABASE AdventureWorks2012
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      QUERY_CAPTURE_MODE = AUTO,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60
    );

F.F. Abilitazione di Query Store con statistiche di attesaEnabling the query store with wait statistics

Si applica a: SQL ServerSQL Server (a partire da SQL Server 2017 (14.x)SQL Server 2017 (14.x))Applies to: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x))

L'esempio seguente abilita l'archivio di query e configura i relativi parametri.The following example enables the query store and configures query store parameters.

ALTER DATABASE AdventureWorks2016
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE, 
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024, 
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO, 
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
    );

G.G. Abilitazione di Query Store con opzioni di criteri di acquisizione personalizzatiEnabling the query store with custom capture policy options

Si applica a: SQL ServerSQL Server (a partire da Anteprima di SQL Server 2019SQL Server 2019 preview)Applies to: SQL ServerSQL Server (Starting with Anteprima di SQL Server 2019SQL Server 2019 preview)

L'esempio seguente abilita l'archivio di query e configura i relativi parametri.The following example enables the query store and configures query store parameters.

ALTER DATABASE AdventureWorks2016 
SET QUERY_STORE = ON 
    (
      OPERATION_MODE = READ_WRITE, 
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024, 
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO, 
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
      QUERY_CAPTURE_MODE = CUSTOM,
      QUERY_CAPTURE_POLICY = (
        STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
        EXECUTION_COUNT = 30,
        TOTAL_COMPILE_CPU_TIME_MS = 1000,
        TOTAL_EXECUTION_CPU_TIME_MS = 100 
      )
    );

Vedere ancheSee Also

SQL ServerSQL Server ** *Database singolo/pool elastico
database SQL*
**  
* SQL Database
single database/elastic pool *
 
Istanza gestita
database SQL
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse

 

Database singolo/pool elastico di database SQL di AzureAzure SQL Database single database/elastic pool

I livelli di compatibilità sono opzioni SET, ma sono descritti in Livello di compatibilità ALTER DATABASE.Compatibility levels are SET options but are described in ALTER DATABASE Compatibility Level.

Nota

Molte opzioni SET di database possono essere configurate per la sessione corrente tramite Istruzioni SET e spesso vengono configurate dalle applicazioni durante la connessione.Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. Le opzioni di impostazione a livello di sessione sostituiscono i valori ALTER DATABASE SET.Session level set options override the ALTER DATABASE SET values. Le opzioni di database descritte di seguito sono valori che è possibile impostare per le sessioni che non prevedono esplicitamente altri valori di opzioni SET.The database options described below are values that can be set for sessions that don't explicitly provide other set option values.

SintassiSyntax

ALTER DATABASE { database_name | Current }
SET
{
    <option_spec> [ ,...n ] [ WITH <termination> ]
}
;

<option_spec> ::=
{
    <auto_option>
  | <automatic_tuning_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;
<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }
  | AUTOMATIC_TUNING ( CREATE_INDEX = { DEFAULT | ON | OFF } )
  | AUTOMATIC_TUNING ( DROP_INDEX = { DEFAULT | ON | OFF } )
  | AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}

<change_tracking_option> ::=
{
  CHANGE_TRACKING
   {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
   }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}

<db_encryption_option> ::=
  ENCRYPTION { ON | OFF }

<db_update_option> ::=
  { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
  { RESTRICTED_USER | MULTI_USER }

<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<parameterization_option> ::=
  PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
  QUERY_STORE
  {
    = OFF
    | = ON [ ( <query_store_option_list> [,... n] ) ]
    | ( < query_store_option_list> [,... n] )
    | CLEAR [ ALL ]
  }
}

<query_store_option_list> ::=
{
  OPERATION_MODE = { READ_WRITE | READ_ONLY }
  | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
  | DATA_FLUSH_INTERVAL_SECONDS = number
  | MAX_STORAGE_SIZE_MB = number
  | INTERVAL_LENGTH_MINUTES = number
  | SIZE_BASED_CLEANUP_MODE = [ AUTO | OFF ]
  | QUERY_CAPTURE_MODE = [ ALL | AUTO | NONE ]
  | MAX_PLANS_PER_QUERY = number
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT {ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT {ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<termination>::=
{
    ROLLBACK AFTER integer [ SECONDS ]
  | ROLLBACK IMMEDIATE
  | NO_WAIT
}

<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }

ArgomentiArguments

database_name database_name
Nome del database da modificare.Is the name of the database to be modified.

CURRENTCURRENT
CURRENT esegue l'azione nel database corrente.CURRENT runs the action in the current database. CURRENT non è supportato per tutte le opzioni in tutti i contesti.CURRENT isn't supported for all options in all contexts. In caso di errore di CURRENT, specificare il nome del database.If CURRENT fails, provide the database name.

<auto_option> ::=<auto_option> ::=

Consente di controllare le opzioni automatiche.Controls automatic options. AUTO_CREATE_STATISTICS { ON | OFF }AUTO_CREATE_STATISTICS { ON | OFF }
ONON
In Query Optimizer vengono create statistiche per colonne singole nei predicati di query, se necessario, per migliorare i piani di query e le prestazioni di esecuzione delle query.The query optimizer creates statistics on single columns in query predicates, as necessary, to improve query plans and query performance. Queste statistiche sulle singole colonne vengono create quando le query vengono compilate in Query Optimizer.These single-column statistics are created when the query optimizer compiles queries. Tali statistiche vengono create solo sulle colonne che ancora non sono le prime colonne di un oggetto statistiche esistente.The single-column statistics are created only on columns that are not already the first column of an existing statistics object.

Il valore predefinito è ON.The default is ON. È consigliabile usare l'impostazione predefinita per la maggior parte dei database.We recommend that you use the default setting for most databases.

OFFOFF
Query Optimizer non crea statistiche su colonne singole nei predicati di query durante la compilazione delle query.The query optimizer doesn't create statistics on single columns in query predicates when it is compiling queries. L'impostazione di questa opzione su OFF può determinare piani di query e prestazioni di esecuzione delle query non ottimali.Setting this option to OFF can cause suboptimal query plans and degraded query performance.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_create_stats_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_create_stats_on column in the sys.databases catalog view. oppure la proprietà IsAutoCreateStatistics della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

Per altre informazioni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

INCREMENTAL = ON | OFFINCREMENTAL = ON | OFF
Imposta AUTO_CREATE_STATISTICS su ON e INCREMENTAL su ON.Set AUTO_CREATE_STATISTICS to ON, and set INCREMENTAL to ON. Questa impostazione crea automaticamente statistiche incrementali ogni volta che sono supportate.This setting creates automatically created stats as incremental whenever incremental stats are supported. Il valore predefinito è OFF.The default value is OFF. Per altre informazioni, vedere CREATE STATISTICS.For more information, see CREATE STATISTICS.

AUTO_SHRINK { ON | OFF }AUTO_SHRINK { ON | OFF }
ONON
I file di database vengono compattati periodicamente, se necessario.The database files are candidates for periodic shrinking.

È possibile compattare automaticamente sia i file di dati sia i file di log.Both data file and log files can be automatically shrunk. AUTO_SHRINK riduce le dimensioni del log delle transazioni solo se per il database è impostato il modello di recupero con registrazione minima oppure se viene eseguito il backup del log.AUTO_SHRINK reduces the size of the transaction log only if you set the database to SIMPLE recovery model or if you back up the log. Se questa opzione è impostata su OFF, i file di database non vengono compattati automaticamente durante i controlli periodici per verificare la presenza di spazio inutilizzato.When set to OFF, the database files aren't automatically shrunk during periodic checks for unused space.

Con l'opzione AUTO_SHRINK i file vengono compattati quando più del 25% dello spazio del file risulta inutilizzato.The AUTO_SHRINK option causes files to be shrunk when more than 25 percent of the file contains unused space. L'opzione causa il compattamento del file in una di due dimensioni,The option causes the file to shrink to one of two sizes. ossia la più grande tra:It shrinks to whichever is larger:

  • La dimensione in cui il 25% del file è costituito da spazio inutilizzatoThe size where 25 percent of the file is unused space
  • La dimensione del file quando è stato creatoThe size of the file when it was created

Non è possibile compattare un database di sola lettura.You can't shrink a read-only database.

OFFOFF
I file di database non vengono compattati automaticamente durante i controlli periodici per la presenza di spazio inutilizzato.The database files are not automatically shrunk during periodic checks for unused space.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_shrink_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_shrink_on column in the sys.databases catalog view. oppure la proprietà IsAutoShrink della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoShrink property of the DATABASEPROPERTYEX function.

Nota

L'opzione AUTO_SHRINK non è disponibile in un database indipendente.The AUTO_SHRINK option isn't available in a Contained Database.

AUTO_UPDATE_STATISTICS { ON | OFF }AUTO_UPDATE_STATISTICS { ON | OFF }
ONON
Specifica che le statistiche vengono aggiornate in Query Optimizer se vengono usate da una query e quando possono non essere aggiornate.Specifies that the query optimizer updates statistics when they're used by a query and when they might be out-of-date. Le statistiche diventano obsolete in seguito a operazioni di inserimento, aggiornamento, eliminazione o unione che modificano la distribuzione dei dati nella tabella o nella vista indicizzata.Statistics become out-of-date after insert, update, delete, or merge operations change the data distribution in the table or indexed view. Query Optimizer determina che le statistiche potrebbero non essere aggiornate contando il numero di modifiche apportate ai dati dopo l'ultimo aggiornamento delle statistiche e confrontando il numero di modifiche con una sogliaThe query optimizer determines when statistics might be out-of-date by counting the number of data modifications since the last statistics update and comparing the number of modifications to a threshold. basata sul numero di righe nella tabella o nella vista indicizzata.The threshold is based on the number of rows in the table or indexed view.

Query Optimizer controlla la presenza di statistiche obsolete prima di compilare una query e di eseguire un piano di query memorizzato nella cache.The query optimizer checks for out-of-date statistics before it compiles a query and it runs a cached query plan. Usa le colonne, le tabelle e le viste indicizzate nel predicato di query per determinare quali statistiche potrebbero non essere aggiornate.The query optimizer uses the columns, tables, and indexed views in the query predicate to determine which statistics might be out-of-date. Individua questa informazione prima di compilare una query.The query optimizer determines this information before it compiles a query. Prima di eseguire un piano di query memorizzato nella cache, il Motore di databaseDatabase Engine verifica che tale piano faccia riferimento alle statistiche aggiornate.Before executing a cached query plan, the Motore di databaseDatabase Engine verifies that the query plan references up-to-date statistics.

L'opzione AUTO_UPDATE_STATISTICS_ASYNC si applica alle statistiche create per indici, colonne singole nei predicati di query e statistiche create con l'istruzione CREATE STATISTICS.The AUTO_UPDATE_STATISTICS option applies to statistics created for indexes, single-columns in query predicates, and statistics that are created by using the CREATE STATISTICS statement. Questa opzione si applica anche alle statistiche filtrate.This option also applies to filtered statistics.

Il valore predefinito è ON.The default is ON. È consigliabile usare l'impostazione predefinita per la maggior parte dei database.We recommend that you use the default setting for most databases.

Usare l'opzione AUTO_UPDATE_STATISTICS_ASYNC per specificare se le statistiche vengono aggiornate in modo sincrono o asincrono.Use the AUTO_UPDATE_STATISTICS_ASYNC option to specify whether the statistics are updated synchronously or asynchronously.

OFFOFF
Specifica che Query Optimizer non aggiorna le statistiche quando vengono usate da una querySpecifies that the query optimizer doesn't update statistics when they're used by a query. né quando potrebbero essere obsolete.The query optimizer also doesn't update statistics when they might be out-of-date. L'impostazione di questa opzione su OFF può determinare piani di query e prestazioni di esecuzione delle query non ottimali.Setting this option to OFF can cause suboptimal query plans and degraded query performance.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_update_stats_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_update_stats_on column in the sys.databases catalog view. oppure la proprietà IsAutoUpdateStatistics della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoUpdateStatistics property of the DATABASEPROPERTYEX function.

Per altre informazioni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ONON
Specifica che gli aggiornamenti delle statistiche per l'opzione AUTO_UPDATE_STATISTICS sono asincroni.Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are asynchronous. Query Optimizer non attende il completamento degli aggiornamenti delle statistiche per compilare le query.The query optimizer doesn't wait for statistics updates to complete before it compiles queries.

L'impostazione di questa opzione su ON non produce alcun effetto, a meno che AUTO_UPDATE_STATISTICS non sia impostata su ON.Setting this option to ON has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

Per impostazione predefinita, l'opzione AUTO_UPDATE_STATISTICS_ASYNC è impostata su OFF. Query Optimizer aggiorna pertanto le statistiche in modo sincrono.By default, the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF, and the query optimizer updates statistics synchronously.

OFFOFF
Specifica che gli aggiornamenti delle statistiche per l'opzione AUTO_UPDATE_STATISTICS sono sincroni.Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are synchronous. Query Optimizer attende il completamento degli aggiornamenti delle statistiche per compilare le query.The query optimizer waits for statistics updates to complete before it compiles queries.

L'impostazione di questa opzione su OFF non produce alcun effetto, a meno che AUTO_UPDATE_STATISTICS non sia impostata su ON.Setting this option to OFF has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_update_stats_async_on nella vista del catalogo sys.databases.You can determine this option's status by examining the is_auto_update_stats_async_on column in the sys.databases catalog view.

Per altre informazioni su quando usare gli aggiornamenti delle statistiche sincroni o asincroni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information that describes when to use synchronous or asynchronous statistics updates, see the section "Using the Database-Wide Statistics Options" in Statistics.

<automatic_tuning_option> ::= <automatic_tuning_option> ::=
Si applica a: SQL Server 2017 (14.x)SQL Server 2017 (14.x).Applies to: SQL Server 2017 (14.x)SQL Server 2017 (14.x).

Controlla le opzioni automatiche per l'ottimizzazione automatica.Controls automatic options for automatic tuning.

AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }
AUTOAUTO
L'impostazione del valore di ottimizzazione automatica su AUTO fa in modo che all'ottimizzazione automatica vengano applicate le impostazioni predefinite di configurazione di Azure.Setting the automatic tuning value to AUTO will apply Azure configuration defaults for automatic tuning.

INHERITINHERIT
L'utilizzo del valore INHERIT fa ereditare la configurazione predefinita dal server padre.Using the value INHERIT will inherit the default configuration from the parent server. Ciò risulta particolarmente utile se si desidera personalizzare la configurazione di ottimizzazione automatica su un server padre e fare in modo che tutti i database del server ereditino queste impostazioni personalizzate.This is especially useful if you would like to customize automatic tuning configuration on a parent server, and have all the databases on such server INHERIT these custom settings. Si noti che affinché l'ereditarietà funzioni, le tre opzioni di ottimizzazione FORCE_LAST_GOOD_PLAN, CREATE_INDEX e DROP_INDEX devono essere impostate sul valore predefinito per i database.Please note that in order for the inheritance to work, the three individual tuning options FORCE_LAST_GOOD_PLAN, CREATE_INDEX and DROP_INDEX need to be set to DEFAULT on databases.

CUSTOMCUSTOM
Se si utilizza il valore CUSTOM, è necessario personalizzare manualmente ciascuna delle opzioni di ottimizzazione automatica disponibili nei database.Using the value CUSTOM, you will need to manually custom configure each of the automatic tuning options available on databases.

Abilita o disabilita l'opzione di gestione automatica degli indici CREATE_INDEX dell'ottimizzazione automatica.Enables or disables automatic index management CREATE_INDEX option of automatic tuning.

CREATE_INDEX = { DEFAULT | ON | OFF }CREATE_INDEX = { DEFAULT | ON | OFF }
DEFAULTDEFALT
Fa ereditare le impostazioni predefinite dal server.Inherits default settings from the server. In questo caso, le opzioni per l'attivazione o la disattivazione delle funzionalità di ottimizzazione automatica sono definite a livello del server.In this case, options of enabling or disabling individual Automatic tuning features are defined at the server level.

ONON
Quando questa opzione è abilitata, gli indici mancanti vengono generati automaticamente per un database.When enabled, missing indexes are automatically generated on a database. Dopo la creazione dell'indice, vengono verificati i miglioramenti delle prestazioni del carico di lavoro.Following the index creation, gains to the performance of the workload are verified. Quando non offre più vantaggi in termini di prestazioni del carico di lavoro, tale indice creato viene annullato automaticamente.When such created index no longer provides benefits to the workload performance, it is automatically reverted. Gli indici creati automaticamente vengono contrassegnati come indici generati dal sistema.Indexes automatically created are flagged as a system generated indexed.

OFFOFF
Gli indici mancanti del database non vengono generati automaticamente.Doesn't automatically generate missing indexes on the database.

Abilita o disabilita l'opzione di gestione automatica degli indici DROP_INDEX dell'ottimizzazione automatica.Enables or disables automatic index management DROP_INDEX option of automatic tuning.

DROP_INDEX = { DEFAULT | ON | OFF }DROP_INDEX = { DEFAULT | ON | OFF }
DEFAULTDEFAULT
Fa ereditare le impostazioni predefinite dal server.Inherits default settings from the server. In questo caso, le opzioni per l'attivazione o la disattivazione delle funzionalità di ottimizzazione automatica sono definite a livello del server.In this case, options of enabling or disabling individual Automatic tuning features are defined at the server level.

ONON
Elimina automaticamente gli indici duplicati o superflui per il carico di lavoro delle prestazioni.Automatically drops duplicate or no longer useful indexes to the performance workload.

OFFOFF
Non rimuove automaticamente gli indici mancanti del database.Doesn't automatically drop missing indexes on the database.

Abilita o disabilita l'opzione di correzione automatica dei piani FORCE_LAST_GOOD_PLAN dell'ottimizzazione automatica.Enables or disables automatic plan correction FORCE_LAST_GOOD_PLAN option of automatic tuning.

FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF }FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF }
DEFAULTDEFAULT
Fa ereditare le impostazioni predefinite dal server.Inherits default settings from the server. In questo caso, le opzioni per l'attivazione o la disattivazione delle funzionalità di ottimizzazione automatica sono definite a livello del server.In this case, options of enabling or disabling individual Automatic tuning features are defined at the server level.

ONON
Il Motore di databaseDatabase Engine forza automaticamente l'ultimo piano adeguato noto presente nelle query Transact-SQLTransact-SQL nel caso in cui il piano SQL comprometta le prestazioni.The Motore di databaseDatabase Engine automatically forces the last known good plan on the Transact-SQLTransact-SQL queries where new SQL plan causes performance regressions. Il Motore di databaseDatabase Engine continua a monitorare le prestazioni delle query Transact-SQLTransact-SQL usando il piano forzato.The Motore di databaseDatabase Engine continuously monitors query performance of the Transact-SQLTransact-SQL query with the forced plan. Se si rilevano miglioramenti delle prestazioni, il Motore di databaseDatabase Engine continuerà a usare l'ultimo piano adeguato noto.If there are performance gains, the Motore di databaseDatabase Engine will keep using last known good plan. Se non si rilevano miglioramenti delle prestazioni, il Motore di databaseDatabase Engine creerà un nuovo piano SQL.If performance gains are not detected, the Motore di databaseDatabase Engine will produce a new SQL plan. L'istruzione avrà esito negativo se Query Store non è abilitato o se non è in modalità di lettura/scrittura.The statement will fail if Query Store isn't enabled or if it isn't in Read-Write mode.

OFFOFF
Il Motore di databaseDatabase Engine segnala potenziali regressioni di prestazioni delle query causate da modifiche apportate al piano SQL nella vista sys.dm_db_tuning_recommendations.The Motore di databaseDatabase Engine reports potential query performance regressions caused by SQL plan changes in sys.dm_db_tuning_recommendations view. I consigli qui segnalati non vengono tuttavia applicati automaticamente.However, these recommendations are not automatically applied. È possibile visualizzare i consigli attivi e risolvere i problemi identificati applicando gli script Transact-SQLTransact-SQL disponibili nella vista.User can monitor active recommendations and fix identified problems by applying Transact-SQLTransact-SQL scripts that are shown in the view. Si tratta del valore predefinito.This is the default value.

<change_tracking_option> ::=<change_tracking_option> ::=

Controlla le opzioni di rilevamento delle modifiche.Controls change tracking options. È possibile abilitare il rilevamento delle modifiche, impostare le opzioni, modificare le opzioni e disabilitare il rilevamento delle modifiche.You can enable change tracking, set options, change options, and disable change tracking. Per alcuni esempi, vedere la sezione Esempi più avanti in questo articolo.For examples, see the Examples section later in this article.

ONON
Abilita il rilevamento delle modifiche per il database.Enables change tracking for the database. Quando si abilita il rilevamento delle modifiche, è possibile impostare anche le opzioni AUTO CLEANUP e CHANGE RETENTION.When you enable change tracking, you can also set the AUTO CLEANUP and CHANGE RETENTION options.

AUTO_CLEANUP = { ON | OFF }AUTO_CLEANUP = { ON | OFF }
ONON
Le informazioni sul rilevamento delle modifiche vengono rimosse automaticamente una volta trascorso il periodo di conservazione specificato.Change tracking information is automatically removed after the specified retention period.

OFFOFF
I dati relativi al rilevamento delle modifiche non vengono rimossi dal database.Change tracking data isn't removed from the database.

CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES } specifica il periodo minimo di conservazione delle informazioni sul rilevamento delle modifiche nel database.CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES } Specifies the minimum period for keeping change tracking information in the database. I dati vengono rimossi solo quando il valore di AUTO_CLEANUP è ON.Data is removed only when the AUTO_CLEANUP value is ON.

retention_period è un numero intero che specifica il componente numerico del periodo di memorizzazione.retention_period is an integer that specifies the numerical component of the retention period.

L'impostazione predefinita è 2 giorni.The default retention period is 2 days. Il periodo di memorizzazione minimo è 1 minuto.The minimum retention period is 1 minute. Il tipo di memorizzazione predefinito è DAYS.The default retention type is DAYS.

OFFOFF
Disabilita il rilevamento delle modifiche per il database.Disables change tracking for the database. Prima di disabilitare il rilevamento delle modifiche per il database, disabilitarlo per tutte le tabelle.Disable change tracking on all tables before you disable change tracking off the database.

<cursor_option> ::=<cursor_option> ::=

Consente di controllare le opzioni del cursore.Controls cursor options.

CURSOR_CLOSE_ON_COMMIT { ON | OFF }CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ONON
Quando si esegue il commit o il rollback di una transazione, eventuali cursori aperti vengono chiusi.Any cursors open when you commit or roll back a transaction are closed.

OFFOFF
I cursori rimangono aperti quando viene eseguito il commit di una transazione. Quando si esegue il rollback di una transazione vengono chiusi tutti i cursori, ad eccezione di quelli definiti come INSENSITIVE o STATIC.Cursors remain open when a transaction is committed; rolling back a transaction closes any cursors except those defined as INSENSITIVE or STATIC.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per CURSOR_CLOSE_ON_COMMIT.Connection-level settings that are set by using the SET statement override the default database setting for CURSOR_CLOSE_ON_COMMIT. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta CURSOR_CLOSE_ON_COMMIT su OFF per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting CURSOR_CLOSE_ON_COMMIT to OFF for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET CURSOR_CLOSE_ON_COMMIT.For more information, see SET CURSOR_CLOSE_ON_COMMIT.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_cursor_close_on_commit_on nella vista del catalogo sys.databases oppure la proprietà IsCloseCursorsOnCommitEnabled della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the is_cursor_close_on_commit_on column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function. Il cursore viene deallocato in modo implicito soltanto al momento della disconnessione.The cursor is implicitly deallocated only at disconnect. Per altre informazioni, vedere DECLARE CURSOR.For more information, see DECLARE CURSOR.

<db_encryption_option> ::=<db_encryption_option> ::=

Controlla lo stato della crittografia del database.Controls the database encryption state.

ENCRYPTION {ON | OFF}ENCRYPTION {ON | OFF}
Imposta il database in modo che sia crittografato (ON) o non crittografato (OFF).Sets the database to be encrypted (ON) or not encrypted (OFF). Per altre informazioni sulla crittografia del database, vedere Transparent Data Encryption e Transparent Data Encryption con il database SQL di Azure.For more information about database encryption, see Transparent Data Encryption, and Transparent Data Encryption with Azure SQL Database.

Se la crittografia è abilitata a livello di database, vengono crittografati tutti i filegroup.When encryption is enabled at the database level, all filegroups will be encrypted. Qualsiasi filegroup nuovo eredita la proprietà di crittografia.Any new filegroups will inherit the encrypted property. Se in un database sono presenti filegroup impostati su READ ONLY, l'operazione di crittografia del database avrà esito negativo.If any filegroups in the database are set to READ ONLY, the database encryption operation will fail.

È possibile visualizzare lo stato della crittografia del database usando la DMV sys.dm_database_encryption_keys.You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.

<db_update_option> ::=<db_update_option> ::=

Indica se sono consentiti aggiornamenti nel database.Controls whether updates are allowed on the database.

READ_ONLYREAD_ONLY
Gli utenti possono leggere i dati dal database, ma non modificarli.Users can read data from the database but not modify it.

Nota

Per migliorare le prestazioni di esecuzione delle query, aggiornare le statistiche prima di impostare un database su READ_ONLY.To improve query performance, update statistics before setting a database to READ_ONLY. Se dopo che un database viene impostato su READ_ONLY sono necessarie statistiche aggiuntive, nel Motore di databaseDatabase Engine verranno create statistiche in tempdb.If additional statistics are needed after a database is set to READ_ONLY, the Motore di databaseDatabase Engine will create statistics in tempdb. Per altre informazioni sulle statistiche per un database di sola lettura, vedere Statistiche.For more information about statistics for a read-only database, see Statistics.

READ_WRITEREAD_WRITE
Il database è disponibile per operazioni di lettura e scrittura.The database is available for read and write operations.

Per modificare questo stato, è necessario disporre dell'accesso esclusivo al database.To change this state, you must have exclusive access to the database. Per altre informazioni, vedere la clausola SINGLE_USER.For more information, see the SINGLE_USER clause.

Nota

Nei database federati di Database SQLSQL Database, SET { READ_ONLY | READ_WRITE } è disabilitato.On Database SQLSQL Database federated databases, SET { READ_ONLY | READ_WRITE } is disabled.

<db_user_access_option> ::=<db_user_access_option> ::=

Controlla l'accesso degli utenti al database.Controls user access to the database.

RESTRICTED_USERRESTRICTED_USER
RESTRICTED_USER consente la connessione al database solo ai membri del ruolo predefinito del database db_owner e ai membri dei ruoli predefiniti del server dbcreator e sysadmin, senza tuttavia imporre un limite al numero di connessioni.RESTRICTED_USER allows for only members of the db_owner fixed database role and dbcreator and sysadmin fixed server roles to connect to the database, but doesn't limit their number. Tutte le connessioni al database vengono interrotte entro l'intervallo di tempo specificato nella clausola di interruzione dell'istruzione ALTER DATABASE.All connections to the database are disconnected in the timeframe specified by the termination clause of the ALTER DATABASE statement. Dopo l'impostazione dello stato RESTRICTED_USER per il database, qualsiasi tentativo di connessione da parte di utenti non qualificati viene rifiutato.After the database has transitioned to the RESTRICTED_USER state, connection attempts by unqualified users are refused. RESTRICTED_USER non può essere modificato con l'istanza gestita di database SQL.RESTRICTED_USER can't be modified with SQL Database managed instance.

MULTI_USERMULTI_USER
Consente la connessione al database a tutti gli utenti che dispongono di autorizzazioni appropriate.All users that have the appropriate permissions to connect to the database are allowed.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna user_access nella vista del catalogo sys.databases oppure la proprietà UserAccess della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the user_access column in the sys.databases catalog view or the UserAccess property of the DATABASEPROPERTYEX function.

<delayed_durability_option> ::=<delayed_durability_option> ::=

Determina se le transazioni sottoposte a commit sono completamente durevoli o durevoli posticipate.Controls whether transactions commit fully durable or delayed durable.

DISABLEDDISABLED
Tutte le transazioni in cui viene usato SET DISABLED sono completamente durevoli.All transactions following SET DISABLED are fully durable. Tutte le opzioni di durabilità impostate in un blocco atomico o in un'istruzione COMMIT vengono ignorate.Any durability options set in an atomic block or commit statement are ignored.

ALLOWEDALLOWED
Tutte le transazioni in cui viene usato SET ALLOWED sono completamente durevoli o durevoli posticipate, a seconda del set di opzioni di durabilità nel blocco atomico o nell'istruzione COMMIT.All transactions following SET ALLOWED are either fully durable or delayed durable, depending upon the durability option set in the atomic block or commit statement.

FORCEDFORCED
Tutte le transazioni in cui viene usato SET FORCED sono durevoli posticipate.All transactions following SET FORCED are delayed durable. Tutte le opzioni di durabilità impostate in un blocco atomico o in un'istruzione COMMIT vengono ignorate.Any durability options set in an atomic block or commit statement are ignored.

<PARAMETERIZATION_option> ::=<PARAMETERIZATION_option> ::=

Consente di controllare l'opzione di parametrizzazione.Controls the parameterization option.

PARAMETERIZATION { SIMPLE | FORCED }PARAMETERIZATION { SIMPLE | FORCED }
SIMPLESIMPLE
Le query vengono parametrizzate in base al comportamento predefinito del database.Queries are parameterized based on the default behavior of the database.

FORCEDFORCED
Con SQL ServerSQL Server viene eseguita la parametrizzazione di tutte le query nel database.SQL ServerSQL Server parameterizes all queries in the database.

L'impostazione corrente di questa opzione può essere determinata esaminando la colonna is_parameterization_forced nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the is_parameterization_forced column in the sys.databases catalog view.

<query_store_options> ::=<query_store_options> ::=

ON | OFF | CLEAR [ ALL ]ON | OFF | CLEAR [ ALL ]
Verifica se Query Store è abilitato nel database e controlla la rimozione del contenuto di Query Store.Controls if the query store is enabled in this database, and also controls removing the contents of the query store.

ONON
Abilita Query Store.Enables the query store.

OFFOFF
Disabilita Query Store.Disables the query store. Si tratta del valore predefinito.This is the default value.

CLEARCLEAR
Rimuove il contenuto di Query Store.Remove the contents of the query store.

OPERATION_MODEOPERATION_MODE
Descrive la modalità di funzionamento di Query Store.Describes the operation mode of the query store. I valori validi sono READ_ONLY e READ_WRITE.Valid values are READ_ONLY and READ_WRITE. In modalità READ_WRITE l'archivio query raccoglie e mantiene le informazioni di statistiche sull'esecuzione di runtime e piani di query.In READ_WRITE mode, the query store collects and persists query plan and runtime execution statistics information. In modalità READ_ONLY le informazioni possono essere lette dall'archivio query, ma non vengono aggiunte nuove informazioni.In READ_ONLY mode, information can be read from the query store, but new information isn't added. Se lo spazio massimo allocato dell'archivio di query viene esaurito, la modalità di funzionamento dell'archivio di query passa a READ_ONLY.If the maximum allocated space of the query store has been exhausted, the query store will change is operation mode to READ_ONLY.

CLEANUP_POLICYCLEANUP_POLICY
Descrive i criteri di conservazione dati di Query Store.Describes the data retention policy of the query store. STALE_QUERY_THRESHOLD_DAYS determina il numero di giorni in cui le informazioni per una query vengono conservate nell'archivio query.STALE_QUERY_THRESHOLD_DAYS determines the number of days for which the information for a query is kept in the query store. STALE_QUERY_THRESHOLD_DAYS è di tipo bigint.STALE_QUERY_THRESHOLD_DAYS is type bigint.

DATA_FLUSH_INTERVAL_SECONDSDATA_FLUSH_INTERVAL_SECONDS
Determina la frequenza con cui i dati scritti nell'archivio query vengono mantenuti su disco.Determines the frequency at which data written to the query store is persisted to disk. Per ottimizzare le prestazioni, i dati raccolti dall'archivio query vengono scritti in modo asincrono sul disco.To optimize for performance, data collected by the query store is asynchronously written to the disk. La frequenza con cui si verifica questo trasferimento asincrono viene configurata tramite l'argomento DATA_FLUSH_INTERVAL_SECONDS.The frequency at which this asynchronous transfer occurs is configured by using the DATA_FLUSH_INTERVAL_SECONDS argument. DATA_FLUSH_INTERVAL_SECONDS è di tipo bigint.DATA_FLUSH_INTERVAL_SECONDS is type bigint.

MAX_STORAGE_SIZE_MBMAX_STORAGE_SIZE_MB
Determina lo spazio allocato per l'archivio query.Determines the space allocated to the query store. MAX_STORAGE_SIZE_MB è di tipo bigint.MAX_STORAGE_SIZE_MB is type bigint.

INTERVAL_LENGTH_MINUTESINTERVAL_LENGTH_MINUTES
Determina l'intervallo di tempo in cui vengono aggregati i dati delle statistiche di esecuzione di runtime nell'archivio query.Determines the time interval at which runtime execution statistics data is aggregated into the query store. Per ottimizzare l'utilizzo dello spazio, le statistiche di esecuzione di runtime nell'archivio di statistiche di runtime vengono aggregate in un intervallo di tempo fisso.To optimize for space usage, the runtime execution statistics in the runtime stats store are aggregated over a fixed time window. L'intervallo di tempo predefinito viene configurato tramite l'argomento INTERVAL_LENGTH_MINUTES.This fixed time window is configured by using the INTERVAL_LENGTH_MINUTES argument. INTERVAL_LENGTH_MINUTES è di tipo bigint.INTERVAL_LENGTH_MINUTES is type bigint.

SIZE_BASED_CLEANUP_MODESIZE_BASED_CLEANUP_MODE
Determina se la pulizia viene attivata automaticamente quando la quantità totale dei dati ha quasi raggiunto le dimensioni massime:Controls whether cleanup will be automatically activated when total amount of data gets close to maximum size:

OFFOFF
La pulizia basata sulle dimensioni non sarà attivata automaticamente.Size based cleanup won't be automatically activated.

AUTOAUTO
La pulizia basata sulle dimensioni sarà attivata automaticamente quando le dimensioni su disco raggiungeranno il 90% di max_storage_size_mb.Size based cleanup will be automatically activated when size on disk reaches 90% of max_storage_size_mb. La pulizia basata sulle dimensioni rimuove per prime le query meno recenti e meno dispendiose.Size based cleanup removes the least expensive and oldest queries first. Si arresta quando raggiunge all'incirca l'80% di max_storage_size_mb.It stops at approximately 80% of max_storage_size_mb. Si tratta del valore di configurazione predefinito.This is the default configuration value.

SIZE_BASED_CLEANUP_MODE è di tipo nvarchar.SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODEQUERY_CAPTURE_MODE
Definisce la modalità di acquisizione query attualmente attiva:Designates the currently active query capture mode:

ALLALL
Vengono acquisite tutte le query.All queries are captured. Si tratta del valore di configurazione predefinito.This is the default configuration value.

AUTOAUTO
Acquisisce le query pertinenti in base al conteggio delle esecuzioni e al consumo delle risorse. Si tratta del valore di configurazione predefinito per Database SQLSQL DatabaseCapture relevant queries based on execution count and resource consumption.This is the default configuration value for Database SQLSQL Database

NessunoNONE
Consente di arrestare l'acquisizione di nuove query.Stop capturing new queries. Query Store continuerà a raccogliere le statistiche di compilazione e runtime per le query che sono già state acquisite.Query Store will continue to collect compile and runtime statistics for queries that were captured already. È consigliabile usare questa configurazione con attenzione per evitare che query importanti non siano acquisite.Use this configuration with caution since you may miss to capture important queries.

QUERY_CAPTURE_MODE è di tipo nvarchar.QUERY_CAPTURE_MODE is type nvarchar.

max_plans_per_queryMAX_PLANS_PER_QUERY
Intero che rappresenta il numero massimo di piani mantenuti per ogni query.An integer representing the maximum number of plans maintained for each query. Il valore predefinito è 200.Default is 200.

<snapshot_option> ::=<snapshot_option> ::=

Determina il livello di isolamento delle transazioni.Determines the transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION { ON | OFF }ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ONON
Abilita l'opzione Snapshot a livello di database.Enables Snapshot option at the database level. Quando è abilitata, le istruzioni DML iniziano la generazione di versioni di riga anche quando nessuna transazione usano l'isolamento dello snapshot.When it is enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. Una volta abilitata l'opzione, le transazioni possono specificare il livello di isolamento della transazione SNAPSHOT.Once this option is enabled, transactions can specify the SNAPSHOT transaction isolation level. Nelle transazioni eseguite con il livello di isolamento SNAPSHOT, tutte le istruzioni possono accedere a uno snapshot dei dati corrispondente allo stato dei dati al momento dell'avvio della transazione.When a transaction runs at the SNAPSHOT isolation level, all statements see a snapshot of data as it exists at the start of the transaction. Se una transazione eseguita con il livello di isolamento SNAPSHOT deve accedere ai dati in più database, è necessario impostare ALLOW_SNAPSHOT_ISOLATION su ON in tutti i database oppure ogni istruzione della transazione deve usare hint di blocco per qualsiasi riferimento in una clausola FROM a una tabella di un database per cui l'opzione ALLOW_SNAPSHOT_ISOLATION è impostata su OFF.If a transaction running at the SNAPSHOT isolation level accesses data in multiple databases, either ALLOW_SNAPSHOT_ISOLATION must be set to ON in all the databases, or each statement in the transaction must use locking hints on any reference in a FROM clause to a table in a database where ALLOW_SNAPSHOT_ISOLATION is OFF.

OFFOFF
Consente di disabilitare l'opzione relativa allo snapshot a livello di database.Turns off the Snapshot option at the database level. Per le transazioni non può essere impostato il livello di isolamento SNAPSHOT.Transactions can't specify the SNAPSHOT transaction isolation level.

Quando si imposta un nuovo stato per l'opzione ALLOW_SNAPSHOT_ISOLATION (da ON a OFF oppure da OFF a ON), ALTER DATABASE restituisce il controllo al chiamante solo dopo il completamento del commit di tutte le transazioni esistenti nel database.When you set ALLOW_SNAPSHOT_ISOLATION to a new state (from ON to OFF, or from OFF to ON), ALTER DATABASE doesn't return control to the caller until all existing transactions in the database are committed. Se per il database è già attivo lo stato specificato nell'istruzione ALTER DATABASE, il controllo viene restituito immediatamente al chiamante.If the database is already in the state specified in the ALTER DATABASE statement, control is returned to the caller immediately. Se l'istruzione ALTER DATABASE non restituisce il controllo rapidamente, usare sys.dm_tran_active_snapshot_database_transactions per verificare se sono presenti transazioni con esecuzione prolungata.If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Se l'istruzione ALTER DATABASE viene annullata, il database rimane nello stato attivo al momento dell'avvio dell'istruzione ALTER DATABASE.If the ALTER DATABASE statement is canceled, the database remains in the state it was in when ALTER DATABASE was started. La vista del catalogo sys.databases indica lo stato delle transazioni di isolamento dello snapshot nel database.The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Se snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF attenderà sei secondi prima di ritentare l'operazione.If snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF will pause six seconds and retry the operation.

Non è possibile cambiare lo stato di ALLOW_SNAPSHOT_ISOLATION se il database è OFFLINE.You can't change the state of ALLOW_SNAPSHOT_ISOLATION if the database is OFFLINE.

Se si imposta ALLOW_SNAPSHOT_ISOLATION in un database READ_ONLY, tale impostazione viene mantenuta anche se il database viene in seguito impostato su READ_WRITE.If you set ALLOW_SNAPSHOT_ISOLATION in a READ_ONLY database, the setting will be kept if the database is later set to READ_WRITE.

È possibile modificare le impostazioni di ALLOW_SNAPSHOT_ISOLATION per i database master, model, msdb e tempdb.You can change the ALLOW_SNAPSHOT_ISOLATION settings for the master, model, msdb, and tempdb databases. Se si cambia l'impostazione per il database tempdb, tale impostazione viene mantenuta ogni volta che l'istanza del Motore di databaseDatabase Engine viene arrestata e riavviata.The setting is kept every time the instance of the Motore di databaseDatabase Engine is stopped and restarted if you change the setting for tempdb. Se si modifica l'impostazione per il database model, questa diventa l'impostazione predefinita per i nuovi database creati, con l'eccezione di tempdb.If you change the setting for model, that setting becomes the default for any new databases that are created, except for tempdb.

L'impostazione predefinita dell'opzione è ON per i database master e msdb.The option is ON, by default, for the master and msdb databases.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna snapshot_isolation_state nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the snapshot_isolation_state column in the sys.databases catalog view.

READ_COMMITTED_SNAPSHOT { ON | OFF }READ_COMMITTED_SNAPSHOT { ON | OFF }
ONON
Abilita l'opzione relativa allo snapshot Read Committed a livello di database.Enables Read-Committed Snapshot option at the database level. Se questa opzione è abilitata, le istruzioni DML iniziano a generare versioni di riga anche quando nessuna transazione usa l'isolamento dello snapshot.When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. Una volta abilitata questa opzione, le transazioni che specificano il livello di isolamento Read committed usano il controllo delle versioni delle righe anziché il blocco.Once this option is enabled, the transactions specifying the read committed isolation level use row versioning instead of locking. Quando una transazione viene eseguita con il livello di isolamento Read Committed, tutte le istruzioni vedono uno snapshot dei dati nello stato in cui si trovano all'avvio dell'istruzione.All statements see a snapshot of data as it exists at the start of the statement when a transaction runs at the read committed isolation level.

OFFOFF
Disabilita l'opzione relativa allo snapshot Read Committed a livello di database.Turns off Read-Committed Snapshot option at the database level. Le transazioni per cui è impostato il livello di isolamento READ COMMITTED usano il blocco.Transactions specifying the READ COMMITTED isolation level use locking.

Per impostare READ_COMMITTED_SNAPSHOT su ON oppure OFF, è necessario che non siano presenti connessioni attive al database, ad eccezione della connessione usata per eseguire il comando ALTER DATABASE.To set READ_COMMITTED_SNAPSHOT ON or OFF, there must be no active connections to the database except for the connection executing the ALTER DATABASE command. Non è tuttavia necessario che il database sia in modalità utente singolo.However, the database doesn't have to be in single-user mode. Non è possibile cambiare lo stato di questa opzione quando il database è OFFLINE.You can't change the state of this option when the database is OFFLINE.

Se si imposta READ_COMMITTED_SNAPSHOT in un database READ_ONLY, tale impostazione viene mantenuta anche se il database viene in seguito impostato su READ_WRITE.If you set READ_COMMITTED_SNAPSHOT in a READ_ONLY database, the setting will be kept when the database is later set to READ_WRITE.

Non è possibile impostare READ_COMMITTED_SNAPSHOT su ON per i database di sistema master, tempdb o msdb.READ_COMMITTED_SNAPSHOT can't be turned ON for the master, tempdb, or msdb system databases. Se si modifica l'impostazione per il database model, questa diventa l'impostazione predefinita per i nuovi database creati, con l'eccezione di tempdb.If you change the setting for model, that setting becomes the default for any new databases created, except for tempdb.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna is_read_committed_snapshot_on nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the is_read_committed_snapshot_on column in the sys.databases catalog view.

Avviso

Quando viene creata una tabella con DURABILITY = SCHEMA_ONLY e l'opzione READ_COMMITTED_SNAPSHOT viene successivamente cambiata tramite ALTER DATABASE, i dati della tabella vengono persi.When a table is created with DURABILITY = SCHEMA_ONLY, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE, data in the table will be lost.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
ONON
Quando l'isolamento della transazione è impostato su un livello inferiore a SNAPSHOT, tutte le operazioni interpretate di Transact-SQLTransact-SQL nelle tabelle ottimizzate per la memoria vengono eseguite con l'isolamento SNAPSHOT.When the transaction isolation level is set to any isolation level lower than SNAPSHOT, all interpreted Transact-SQLTransact-SQL operations on memory-optimized tables are run under SNAPSHOT isolation. I livelli di isolamento inferiori a SNAPSHOT sono, ad esempio, READ COMMITTED e READ UNCOMMITTED.Examples of isolation levels lower than snapshot are READ COMMITTED or READ UNCOMMITTED. Queste operazioni vengono eseguite indipendentemente dal fatto che venga impostato in modo esplicito il livello di isolamento della transazione a livello di sessione o che venga usata in modo implicito l'impostazione predefinita.These operations run whether the transaction isolation level is set explicitly at the session level, or the default is used implicitly.

OFFOFF
Non eleva il livello di isolamento della transazione per le operazioni interpretate di Transact-SQLTransact-SQL nelle tabelle ottimizzate per la memoria.Doesn't elevate the transaction isolation level for interpreted Transact-SQLTransact-SQL operations on memory-optimized tables.

Non è possibile cambiare lo stato di MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT se il database è OFFLINE.You can't change the state of MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT if the database is OFFLINE.

Il valore predefinito è OFF.The default value is OFF.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna memory_optimized_elevate_to_snapshot nella vista del catalogo sys.database.The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on column in the sys.databases catalog view.

<sql_option> ::=<sql_option> ::=

Controlla le opzioni di conformità ANSI a livello di database.Controls the ANSI compliance options at the database level.

ANSI_NULL_DEFAULT { ON | OFF }ANSI_NULL_DEFAULT { ON | OFF }
Determina il valore predefinito, NULL o NOT NULL, per una colonna o un tipo CLR definito dall'utente per cui il supporto dei valori Null non è definito in modo esplicito nell'istruzione CREATE TABLE o ALTER TABLE.Determines the default value, NULL or NOT NULL, of a column or CLR user-defined type for which the nullability isn't explicitly defined in CREATE TABLE or ALTER TABLE statements. Le colonne definite con vincoli seguono le regole dei vincoli indipendentemente da questa impostazione.Columns that are defined with constraints follow constraint rules whatever this setting may be.

ONON
Il valore predefinito è NULL.The default value is NULL.

OFFOFF
Il valore predefinito è NOT NULL.The default value is NOT NULL.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_NULL_DEFAULT.Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_NULL_DEFAULT. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_NULL_DEFAULT su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULL_DEFAULT to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_NULL_DFLT_ON.For more information, see SET ANSI_NULL_DFLT_ON.

Per motivi di compatibilità con ANSI, l'impostazione dell'opzione di database ANSI_NULL_DEFAULT su ON modifica l'impostazione predefinita del database su NULL.For ANSI compatibility, setting the database option ANSI_NULL_DEFAULT to ON changes the database default to NULL.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_null_default_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_null_default_on column in the sys.databases catalog view. oppure la proprietà IsAnsiNullDefault della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiNullDefault property of the DATABASEPROPERTYEX function.

ANSI_NULLS { ON | OFF }ANSI_NULLS { ON | OFF }
ONON
Tutti i confronti con un valore Null restituiscono UNKNOWN.All comparisons to a null value evaluate to UNKNOWN.

OFFOFF
I confronti di valori non UNICODE con un valore Null restituiscono TRUE se entrambi i valori sono NULL.Comparisons of non-UNICODE values to a null value evaluate to TRUE if both values are NULL.

Importante

In una versione futura di SQL ServerSQL Server, ANSI_NULLS sarà sempre impostata su ON e qualsiasi applicazione che imposta tale opzione in modo esplicito su OFF genererà un errore.In a future version of SQL ServerSQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_NULLS.Connection-level settings that are set by using the SET statement override the default database setting for ANSI_NULLS. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_NULLS su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULLS to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_NULLS.For more information, see SET ANSI_NULLS.

È inoltre necessario che l'opzione SET ANSI_NULLS sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ANSI_NULLS also must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_nulls_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_nulls_on column in the sys.databases catalog view. oppure la proprietà IsAnsiNullsEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiNullsEnabled property of the DATABASEPROPERTYEX function.

ANSI_PADDING { ON | OFF }ANSI_PADDING { ON | OFF }
ONON
Le stringhe vengono riempite in modo che abbiano tutte la stessa lunghezza prima della conversione.Strings are padded to the same length before conversion. o dell'inserimento in un tipo di dati varchar o nvarchar.Also padded to the same length before inserting to a varchar or nvarchar data type.

OFFOFF
Vengono inseriti spazi vuoti finali nei valori di tipo carattere in colonne di tipo varchar o nvarchar.Inserts trailing blanks in character values into varchar or nvarchar columns. Vengono inoltre lasciati gli zeri finali nei valori binari inseriti nelle colonne di tipo varbinary.Also leaves trailing zeros in binary values that are inserted into varbinary columns. I valori non vengono riempiti per l'intera lunghezza della colonna.Values aren't padded to the length of the column.

Se si specifica OFF, questa impostazione ha effetto solo sulla definizione di nuove colonne.When OFF is specified, this setting affects only the definition of new columns.

Importante

In una versione futura di SQL ServerSQL Server, ANSI_PADDING sarà sempre impostata su ON e qualsiasi applicazione che imposta tale opzione in modo esplicito su OFF genererà un errore.In a future version of SQL ServerSQL Server, ANSI_PADDING will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. È consigliabile impostare l'opzione ANSI_PADDING sempre su ON.We recommend that you always set ANSI_PADDING to ON. È necessario che l'opzione ANSI_PADDING sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.ANSI_PADDING must be ON when you create or manipulate indexes on computed columns or indexed views.

Le colonne char(n) e binary(n) che consentono valori Null vengono riempite fino alla loro lunghezza quando ANSI_PADDING è impostata su ON.char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. I valori vuoti e gli zeri finali vengono eliminati quando ANSI_PADDING è impostata su OFF.Trailing blanks and zeros are trimmed when ANSI_PADDING is OFF. Le colonne char(n) e binary(n) che non consentono valori Null vengono sempre riempite fino alla loro lunghezza.char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_PADDING.Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_PADDING. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_PADDING su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_PADDING to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_PADDING.For more information, see SET ANSI_PADDING.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_padding_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_padding_on column in the sys.databases catalog view. oppure la proprietà IsAnsiPaddingEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiPaddingEnabled property of the DATABASEPROPERTYEX function.

ANSI_WARNINGS { ON | OFF }ANSI_WARNINGS { ON | OFF }
ONON
Vengono restituiti messaggi di errore o di avviso quando si verificano condizioni come la divisione per zeroErrors or warnings are issued when conditions such as divide-by-zero occur. e inoltre quando nelle funzioni di aggregazione sono presenti valori Null.Errors and warnings are also issued when null values appear in aggregate functions.

OFFOFF
Non vengono generati avvisi e vengono restituiti valori Null quando si verificano condizioni come la divisione per zero.No warnings are raised and null values are returned when conditions such as divide-by-zero occur.

È necessario che l'opzione ANSI_WARNINGS sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ANSI_WARNINGS must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_WARNINGS.Connection-level settings that are set by using the SET statement override the default database setting for ANSI_WARNINGS. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_WARNINGS su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_WARNINGS to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_WARNINGS.For more information, see SET ANSI_WARNINGS.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_warnings_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_warnings_on column in the sys.databases catalog view. oppure la proprietà IsAnsiWarningsEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiWarningsEnabled property of the DATABASEPROPERTYEX function.

ARITHABORT { ON | OFF }ARITHABORT { ON | OFF }
ONON
Interrompe una query quando si verifica un overflow o un errore di divisione per zero durante l'esecuzione della query stessa.A query is ended when an overflow or divide-by-zero error occurs during query execution.

OFFOFF
Quando si verifica uno di questi errori, viene visualizzato un messaggio di avviso.A warning message is displayed when one of these errors occurs. L'esecuzione della query, del batch o della transazione prosegue come se non si fosse verificato alcun errore, anche se viene visualizzato un messaggio di avviso.The query, batch, or transaction continues to process as if no error occurred even if a warning is displayed.

È necessario che l'opzione ARITHABORT sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ARITHABORT must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_arithabort_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_arithabort_on column in the sys.databases catalog view. oppure la proprietà IsArithmeticAbortEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsArithmeticAbortEnabled property of the DATABASEPROPERTYEX function.

COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 }COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 }
Per altre informazioni, vedere Livello di compatibilità ALTER DATABASE.For more information, see ALTER DATABASE Compatibility Level.

CONCAT_NULL_YIELDS_NULL { ON | OFF }CONCAT_NULL_YIELDS_NULL { ON | OFF }
ONON
Il risultato di un'operazione di concatenazione è NULL quando uno degli operandi è NULL.The result of a concatenation operation is NULL when either operand is NULL. La concatenazione della stringa di caratteri "Questo è" con NULL restituisce, ad esempio, il valore NULL anziché il valore "Questo è".For example, concatenating the character string "This is" and NULL causes the value NULL, instead of the value "This is".

OFFOFF
Il valore Null viene considerato come una stringa di caratteri vuota.The null value is treated as an empty character string.

È necessario che l'opzione CONCAT_NULL_YIELDS_NULL sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.CONCAT_NULL_YIELDS_NULL must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Importante

In una versione futura di SQL ServerSQL Server, l'opzione CONCAT_NULL_YIELDS_NULL sarà sempre impostata su ON e qualsiasi applicazione che la imposta in modo esplicito su OFF restituirà un errore.In a future version of SQL ServerSQL Server, CONCAT_NULL_YIELDS_NULL will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per CONCAT_NULL_YIELDS_NULL.Connection-level settings that are set by using the SET statement override the default database setting for CONCAT_NULL_YIELDS_NULL. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta CONCAT_NULL_YIELDS_NULL su ON per la sessione quando viene stabilita una connessione a un'istanza di SQL ServerSQL Server.By default, ODBC and OLE DB clients issue a connection-level SET statement setting CONCAT_NULL_YIELDS_NULL to ON for the session when connecting to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET CONCAT_NULL_YIELDS_NULL.For more information, see SET CONCAT_NULL_YIELDS_NULL.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_concat_null_yields_null_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_concat_null_yields_null_on column in the sys.databases catalog view. oppure la proprietà IsNullConcat della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsNullConcat property of the DATABASEPROPERTYEX function.

QUOTED_IDENTIFIER { ON | OFF }QUOTED_IDENTIFIER { ON | OFF }
ONON
È possibile delimitare gli identificatori delimitati racchiudendoli tra virgolette doppie.Double quotation marks can be used to enclose delimited identifiers.

Tutte le stringhe delimitate da virgolette doppie vengono interpretate come identificatori di oggetto.All strings delimited by double quotation marks are interpreted as object identifiers. Gli identificatori delimitati non devono necessariamente essere conformi alle regole di Transact-SQLTransact-SQL per gli identificatori.Quoted identifiers don't have to follow the Transact-SQLTransact-SQL rules for identifiers. Possono essere parole chiave e includere caratteri normalmente non consentiti negli identificatori di Transact-SQLTransact-SQL.They can be keywords and can include characters not allowed in Transact-SQLTransact-SQL identifiers. Se una virgoletta singola (') fa parte della stringa letterale, può essere rappresentata tramite virgolette doppie (").If a single quotation mark (') is part of the literal string, it can be represented by double quotation marks (").

OFFOFF
Gli identificatori non possono essere delimitati da virgolette e devono rispettare tutte le regole di Transact-SQLTransact-SQL per gli identificatori.Identifiers can't be in quotation marks and must follow all Transact-SQLTransact-SQL rules for identifiers. È possibile delimitare i valori letterali con virgolette singole o doppie.Literals can be delimited by either single or double quotation marks.

SQL ServerSQL Server consente inoltre di racchiudere gli identificatori tra parentesi quadre ([ ]).also allows for identifiers to be delimited by square brackets ([ ]). Gli identificatori tra parentesi quadre possono essere sempre usati, indipendentemente dall'impostazione di QUOTED_IDENTIFIER.Bracketed identifiers can always be used, whatever the QUOTED_IDENTIFIER setting is. Per altre informazioni, vedere Identificatori del database.For more information, see Database Identifiers.

Quando viene creata una tabella, l'opzione QUOTED IDENTIFIER viene sempre archiviata con l'impostazione ON nei relativi metadati,When a table is created, the QUOTED IDENTIFIER option is always stored as ON in the metadata of the table. anche se l'opzione è impostata su OFF.The option is stored even if the option is set to OFF when the table is created.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per QUOTED_IDENTIFIER.Connection-level settings that are set by using the SET statement override the default database setting for QUOTED_IDENTIFIER. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta QUOTED_IDENTIFIER.ODBC and OLE DB clients issue a connection-level SET statement setting QUOTED_IDENTIFIER to ON, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET QUOTED_IDENTIFIER.For more information, see SET QUOTED_IDENTIFIER.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_quoted_identifier_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_quoted_identifier_on column in the sys.databases catalog view. oppure la proprietà IsQuotedIdentifiersEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsQuotedIdentifiersEnabled property of the DATABASEPROPERTYEX function.

NUMERIC_ROUNDABORT { ON | OFF }NUMERIC_ROUNDABORT { ON | OFF }
ONON
Viene generato un errore quando si verifica una perdita di precisione in un'espressione.An error is generated when loss of precision occurs in an expression.

OFFOFF
La perdita di precisione non genera messaggi di errore e il risultato viene arrotondato alla precisione della colonna o della variabile in cui viene archiviato.Losses of precision don't generate error messages and the result is rounded to the precision of the column or variable storing the result.

È necessario che l'opzione NUMERIC_ROUNDABORT sia impostata su OFF quando vengono creati o modificati indici in colonne calcolate o viste indicizzate.NUMERIC_ROUNDABORT must be set to OFF when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_numeric_roundabort_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_numeric_roundabort_on column in the sys.databases catalog view. oppure la proprietà IsNumericRoundAbortEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsNumericRoundAbortEnabled property of the DATABASEPROPERTYEX function.

RECURSIVE_TRIGGERS { ON | OFF }RECURSIVE_TRIGGERS { ON | OFF }
ONON
È consentita l'attivazione ricorsiva di trigger AFTER.Recursive firing of AFTER triggers is allowed.

OFFOFF
Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_recursive_triggers_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view. oppure la proprietà IsRecursiveTriggersEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

Nota

Se l'opzione RECURSIVE_TRIGGERS è impostata su OFF, viene impedita esclusivamente la ricorsione diretta.Only direct recursion is prevented when RECURSIVE_TRIGGERS is set to OFF. Per disabilitare la ricorsione indiretta, è necessario impostare anche l'opzione del server nested triggers su 0.To disable indirect recursion, you must also set the nested triggers server option to 0.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_recursive_triggers_on nella vista del catalogo sys.databases oppure la proprietà IsRecursiveTriggersEnabled della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view or the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

<target_recovery_time_option> ::=<target_recovery_time_option> ::=

Specifica la frequenza di checkpoint indiretti per database singolo.Specifies the frequency of indirect checkpoints on a per-database basis. A partire da SQL Server 2016 (13.x)SQL Server 2016 (13.x), il valore predefinito per i nuovi database è 1 minuto, a indicare che il database userà checkpoint indiretti.Beginning with SQL Server 2016 (13.x)SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database will use indirect checkpoints. Per le versioni precedenti, il valore predefinito è 0, a indicare che il database userà checkpoint automatici la cui frequenza dipende dall'impostazione dell'intervallo di recupero dell'istanza del server.For older versions the default is 0, which indicates that the database will use automatic checkpoints, whose frequency depends on the recovery interval setting of the server instance. MicrosoftMicrosoft consiglia di usare 1 minuto per la maggior parte dei sistemi.recommends 1 minute for most systems.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDI | MINUTI }TARGET_RECOVERY_TIME =target_recovery_time { SECONDS | MINUTES }
target_recovery_time target_recovery_time
Specifica il limite massimo di tempo per recuperare il database specificato in caso di un arresto anomalo del sistema.Specifies the maximum bound on the time to recover the specified database in the event of a crash.

SECONDSSECONDS
Indica che target_recovery_time viene espresso come numero di secondi.Indicates that target_recovery_time is expressed as the number of seconds.

MINUTESMINUTES
Indica che target_recovery_time viene espresso come numero di minuti.Indicates that target_recovery_time is expressed as the number of minutes.

Per altre informazioni sui checkpoint indiretti, vedere Checkpoint di database.For more information about indirect checkpoints, see Database Checkpoints.

WITH <termination> ::=WITH <termination> ::=

Specifica quando eseguire il rollback di transazioni incomplete in caso di transizione dello stato del database.Specifies when to roll back incomplete transactions when the database is transitioned from one state to another. Se questa clausola viene omessa, l'attesa da parte dell'istruzione ALTER DATABASE è illimitata in presenza di qualsiasi blocco attivo sul database.If the termination clause is omitted, the ALTER DATABASE statement waits indefinitely if there's any lock on the database. È possibile specificare una sola clausola di terminazione, che deve seguire le clausole SET.Only one termination clause can be specified, and it follows the SET clauses.

Nota

Non tutte le opzioni di database usano la clausola WITH <termination>.Not all database options use the WITH <termination> clause. Per altre informazioni, vedere la tabella in "Impostazione delle opzioni" nella sezione "Osservazioni" di questo articolo.For more information, see the table under "Setting Options of the "Remarks" section of this article.

ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATEROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
Specifica se eseguire il rollback dopo il numero di secondi specificato o immediatamente.Specifies whether to roll back after the specified number of seconds or immediately.

NO_WAITNO_WAIT
Specifica che la richiesta ha esito negativo se non è possibile completare immediatamente la modifica richiesta dello stato del database o dell'opzione,Specifies that the request will fail if the requested database state or option change can't complete immediately. senza aspettare il commit o il rollback automatico delle transazioni.Completing immediately means not waiting for transactions to commit or roll back on their own.

Impostazione delle opzioniSetting Options

Per recuperare le impostazioni correnti delle opzioni di database, usare la vista del catalogo sys.databases o DATABASEPROPERTYEXTo retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX

Dopo avere impostato un'opzione di database, la modifica diventa effettiva immediatamente.After you set a database option, the modification takes effect immediately.

Per cambiare i valori predefiniti di qualsiasi opzione di database per tutti i nuovi database,You can change the default values for any one of the database options for all newly created databases. cambiare l'opzione appropriata nel database modello.To do so, change the appropriate database option in the model database.

Non tutte le opzioni di database usano la clausola WITH <termination> o possono essere specificate in combinazione con altre opzioni.Not all database options use the WITH <termination> clause or can be specified in combination with other options. Nella tabella seguente sono elencate tali opzioni con indicazione del supporto della clausola di terminazione o dell'impostazione in combinazione con altre opzioni.The following table lists these options and their option and termination status.

Categoria di opzioniOptions category Impostazione in combinazione con altre opzioniCan be specified with other options Supporto della clausola WITH <termination>Can use the WITH <termination> clause
<auto_option><auto_option> Yes noNo
<change_tracking_option><change_tracking_option> Yes Yes
<cursor_option><cursor_option> Yes noNo
<db_encryption_option><db_encryption_option> Yes noNo
<db_update_option><db_update_option> Yes Yes
<db_user_access_option><db_user_access_option> Yes Yes
<delayed_durability_option><delayed_durability_option> Yes Yes
<parameterization_option><parameterization_option> Yes Yes
ALLOW_SNAPSHOT_ISOLATIONALLOW_SNAPSHOT_ISOLATION noNo noNo
READ_COMMITTED_SNAPSHOTREAD_COMMITTED_SNAPSHOT noNo Yes
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOTMEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT Yes Yes
DATE_CORRELATION_OPTIMIZATIONDATE_CORRELATION_OPTIMIZATION Yes Yes
<sql_option><sql_option> Yes noNo
<target_recovery_time_option><target_recovery_time_option> noNo Yes

EsempiExamples

A.A. Impostazione del database su READ_ONLYSetting the database to READ_ONLY

Per modificare lo stato di un database o di un filegroup impostandolo su READ_ONLY o READ_WRITE, è necessario l'accesso esclusivo al database.Changing the state of a database or filegroup to READ_ONLY or READ_WRITE requires exclusive access to the database. Nell'esempio seguente viene impostata la modalità RESTRICTED_USER per il database in modo da limitare l'accesso.The following example sets the database to RESTRICTED_USER mode to limit access. Nell'esempio lo stato del database AdventureWorks2012AdventureWorks2012 viene quindi impostato su READ_ONLY e viene ripristinato l'accesso al database per tutti gli utenti.The example then sets the state of the AdventureWorks2012AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.

USE master;
GO
ALTER DATABASE AdventureWorks2012
SET RESTRICTED_USER;
GO
ALTER DATABASE AdventureWorks2012
SET READ_ONLY
GO
ALTER DATABASE AdventureWorks2012
SET MULTI_USER;
GO

B.B. Abilitazione dell'isolamento dello snapshot in un databaseEnabling snapshot isolation on a database

Nell'esempio seguente viene abilitata l'opzione relativa al framework di isolamento dello snapshot per il database AdventureWorks2012AdventureWorks2012.The following example enables the snapshot isolation framework option for the AdventureWorks2012AdventureWorks2012 database.

USE AdventureWorks2012;
USE master;
GO
ALTER DATABASE AdventureWorks2012
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'AdventureWorks2012';
GO

Il set di risultati indica che il framework di isolamento dello snapshot è abilitato.The result set shows that the snapshot isolation framework is enabled.

NAMEname snapshot_isolation_statesnapshot_isolation_state descriptiondescription
AdventureWorks2012AdventureWorks2012 11 ONON

C.C. Abilitazione, modifica e disabilitazione del rilevamento delle modificheEnabling, modifying, and disabling change tracking

Nell'esempio seguente viene abilitato il rilevamento delle modifiche per il database AdventureWorks2012AdventureWorks2012 e il periodo di memorizzazione viene impostato su 2 giorni.The following example enables change tracking for the AdventureWorks2012AdventureWorks2012 database and sets the retention period to 2 days.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

Nell'esempio seguente viene illustrato come modificare il periodo di memorizzazione impostandolo su 3 giorni.The following example shows how to change the retention period to 3 days.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

Nell'esempio seguente viene illustrato come disabilitare il rilevamento delle modifiche per il database AdventureWorks2012AdventureWorks2012.The following example shows how to disable change tracking for the AdventureWorks2012AdventureWorks2012 database.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = OFF;

D.D. Abilitazione dell'archivio di queryEnabling the query store

L'esempio seguente abilita l'archivio di query e configura i relativi parametri.The following example enables the query store and configures query store parameters.

ALTER DATABASE AdventureWorks2012
SET QUERY_STORE = ON
(
      OPERATION_MODE = READ_WRITE
    , CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 )
    , DATA_FLUSH_INTERVAL_SECONDS = 900
    , MAX_STORAGE_SIZE_MB = 1024
    , INTERVAL_LENGTH_MINUTES = 60
    );

Vedere ancheSee Also

SQL ServerSQL Server Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
** * Istanza gestita
database SQL*
**  
* SQL Database
managed instance *
 
SQL Data
Warehouse
SQL Data
Warehouse

 

Istanza gestita di database SQL di AzureAzure SQL Database managed instance

I livelli di compatibilità sono opzioni SET, ma sono descritti in Livello di compatibilità ALTER DATABASE.Compatibility levels are SET options but are described in ALTER DATABASE Compatibility Level.

Nota

Molte opzioni SET di database possono essere configurate per la sessione corrente tramite Istruzioni SET e spesso vengono configurate dalle applicazioni durante la connessione.Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. Le opzioni di impostazione a livello di sessione sostituiscono i valori ALTER DATABASE SET.Session level set options override the ALTER DATABASE SET values. Le opzioni di database descritte di seguito sono valori che è possibile impostare per le sessioni che non prevedono esplicitamente altri valori di opzioni SET.The database options described below are values that can be set for sessions that don't explicitly provide other set option values.

SintassiSyntax

ALTER DATABASE { database_name | Current }
SET
{
    <optionspec> [ ,...n ]
}
;

<optionspec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;
<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
  AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { ON | OFF } )
}

<change_tracking_option> ::=
{
  CHANGE_TRACKING
   {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
   }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}

<db_encryption_option> ::=
  ENCRYPTION { ON | OFF }

<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<parameterization_option> ::=
  PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
  QUERY_STORE
  {
    = OFF
    | = ON [ ( <query_store_option_list> [,... n] ) ]
    | ( < query_store_option_list> [,... n] )
    | CLEAR [ ALL ]
  }
}

<query_store_option_list> ::=
{
  OPERATION_MODE = { READ_WRITE | READ_ONLY }
  | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
  | DATA_FLUSH_INTERVAL_SECONDS = number
  | MAX_STORAGE_SIZE_MB = number
  | INTERVAL_LENGTH_MINUTES = number
  | SIZE_BASED_CLEANUP_MODE = [ AUTO | OFF ]
  | QUERY_CAPTURE_MODE = [ ALL | AUTO | NONE ]
  | MAX_PLANS_PER_QUERY = number
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT {ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT {ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }

ArgomentiArguments

database_name database_name
Nome del database da modificare.Is the name of the database to be modified.

CURRENTCURRENT
CURRENT esegue l'azione nel database corrente.CURRENT runs the action in the current database. CURRENT non è supportato per tutte le opzioni in tutti i contesti.CURRENT isn't supported for all options in all contexts. In caso di errore di CURRENT, specificare il nome del database.If CURRENT fails, provide the database name.

<auto_option> ::=<auto_option> ::=

Consente di controllare le opzioni automatiche.Controls automatic options.

AUTO_CREATE_STATISTICS { ON | OFF }AUTO_CREATE_STATISTICS { ON | OFF }
ONON
In Query Optimizer vengono create statistiche per colonne singole nei predicati di query, se necessario, per migliorare i piani di query e le prestazioni di esecuzione delle query.The query optimizer creates statistics on single columns in query predicates, as necessary, to improve query plans and query performance. Queste statistiche sulle singole colonne vengono create quando le query vengono compilate in Query Optimizer.These single-column statistics are created when the query optimizer compiles queries. Tali statistiche vengono create solo sulle colonne che ancora non sono le prime colonne di un oggetto statistiche esistente.The single-column statistics are created only on columns that are not already the first column of an existing statistics object.

Il valore predefinito è ON.The default is ON. È consigliabile usare l'impostazione predefinita per la maggior parte dei database.We recommend that you use the default setting for most databases.

OFFOFF
Query Optimizer non crea statistiche su colonne singole nei predicati di query durante la compilazione delle query.The query optimizer doesn't create statistics on single columns in query predicates when it is compiling queries. L'impostazione di questa opzione su OFF può determinare piani di query e prestazioni di esecuzione delle query non ottimali.Setting this option to OFF can cause suboptimal query plans and degraded query performance.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_create_stats_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_create_stats_on column in the sys.databases catalog view. oppure la proprietà IsAutoCreateStatistics della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

Per altre informazioni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

INCREMENTAL = ON | OFFINCREMENTAL = ON | OFF
Imposta AUTO_CREATE_STATISTICS su ON e INCREMENTAL su ON.Set AUTO_CREATE_STATISTICS to ON, and set INCREMENTAL to ON. Questa impostazione crea automaticamente statistiche incrementali ogni volta che sono supportate.This setting creates automatically created stats as incremental whenever incremental stats are supported. Il valore predefinito è OFF.The default value is OFF. Per altre informazioni, vedere CREATE STATISTICS.For more information, see CREATE STATISTICS.

AUTO_SHRINK { ON | OFF }AUTO_SHRINK { ON | OFF }
ONON
I file di database vengono compattati periodicamente, se necessario.The database files are candidates for periodic shrinking.

È possibile compattare automaticamente sia i file di dati sia i file di log.Both data file and log files can be automatically shrunk. AUTO_SHRINK riduce le dimensioni del log delle transazioni solo se per il database è impostato il modello di recupero con registrazione minima oppure se viene eseguito il backup del log.AUTO_SHRINK reduces the size of the transaction log only if you set the database to SIMPLE recovery model or if you back up the log. Se questa opzione è impostata su OFF, i file di database non vengono compattati automaticamente durante i controlli periodici per verificare la presenza di spazio inutilizzato.When set to OFF, the database files aren't automatically shrunk during periodic checks for unused space.

Con l'opzione AUTO_SHRINK i file vengono compattati quando più del 25% dello spazio del file risulta inutilizzato.The AUTO_SHRINK option causes files to be shrunk when more than 25 percent of the file contains unused space. L'opzione causa il compattamento del file in una di due dimensioni,The option causes the file to shrink to one of two sizes. ossia la più grande tra:It shrinks to whichever is larger:

  • La dimensione in cui il 25% del file è costituito da spazio inutilizzatoThe size where 25 percent of the file is unused space
  • La dimensione del file quando è stato creatoThe size of the file when it was created

Non è possibile compattare un database di sola lettura.You can't shrink a read-only database.

OFFOFF
I file di database non vengono compattati automaticamente durante i controlli periodici per la presenza di spazio inutilizzato.The database files are not automatically shrunk during periodic checks for unused space.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_shrink_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_shrink_on column in the sys.databases catalog view. oppure la proprietà IsAutoShrink della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoShrink property of the DATABASEPROPERTYEX function.

Nota

L'opzione AUTO_SHRINK non è disponibile in un database indipendente.The AUTO_SHRINK option isn't available in a Contained Database.

AUTO_UPDATE_STATISTICS { ON | OFF }AUTO_UPDATE_STATISTICS { ON | OFF }
ONON
Specifica che le statistiche vengono aggiornate in Query Optimizer se vengono usate da una query e quando possono non essere aggiornate.Specifies that the query optimizer updates statistics when they're used by a query and when they might be out-of-date. Le statistiche diventano obsolete in seguito a operazioni di inserimento, aggiornamento, eliminazione o unione che modificano la distribuzione dei dati nella tabella o nella vista indicizzata.Statistics become out-of-date after insert, update, delete, or merge operations change the data distribution in the table or indexed view. Query Optimizer determina che le statistiche potrebbero non essere aggiornate contando il numero di modifiche apportate ai dati dopo l'ultimo aggiornamento delle statistiche e confrontando il numero di modifiche con una sogliaThe query optimizer determines when statistics might be out-of-date by counting the number of data modifications since the last statistics update and comparing the number of modifications to a threshold. basata sul numero di righe nella tabella o nella vista indicizzata.The threshold is based on the number of rows in the table or indexed view.

Query Optimizer controlla la presenza di statistiche obsolete prima di compilare una query e di eseguire un piano di query memorizzato nella cache.The query optimizer checks for out-of-date statistics before it compiles a query and it runs a cached query plan. Usa le colonne, le tabelle e le viste indicizzate nel predicato di query per determinare quali statistiche potrebbero non essere aggiornate.The query optimizer uses the columns, tables, and indexed views in the query predicate to determine which statistics might be out-of-date. Individua questa informazione prima di compilare una query.The query optimizer determines this information before it compiles a query. Prima di eseguire un piano di query memorizzato nella cache, il Motore di databaseDatabase Engine verifica che tale piano faccia riferimento alle statistiche aggiornate.Before executing a cached query plan, the Motore di databaseDatabase Engine verifies that the query plan references up-to-date statistics.

L'opzione AUTO_UPDATE_STATISTICS_ASYNC si applica alle statistiche create per indici, colonne singole nei predicati di query e statistiche create con l'istruzione CREATE STATISTICS.The AUTO_UPDATE_STATISTICS option applies to statistics created for indexes, single-columns in query predicates, and statistics that are created by using the CREATE STATISTICS statement. Questa opzione si applica anche alle statistiche filtrate.This option also applies to filtered statistics.

Il valore predefinito è ON.The default is ON. È consigliabile usare l'impostazione predefinita per la maggior parte dei database.We recommend that you use the default setting for most databases.

Usare l'opzione AUTO_UPDATE_STATISTICS_ASYNC per specificare se le statistiche vengono aggiornate in modo sincrono o asincrono.Use the AUTO_UPDATE_STATISTICS_ASYNC option to specify whether the statistics are updated synchronously or asynchronously.

OFFOFF
Specifica che Query Optimizer non aggiorna le statistiche quando vengono usate da una querySpecifies that the query optimizer doesn't update statistics when they're used by a query. né quando potrebbero essere obsolete.The query optimizer also doesn't update statistics when they might be out-of-date. L'impostazione di questa opzione su OFF può determinare piani di query e prestazioni di esecuzione delle query non ottimali.Setting this option to OFF can cause suboptimal query plans and degraded query performance.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_update_stats_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_auto_update_stats_on column in the sys.databases catalog view. oppure la proprietà IsAutoUpdateStatistics della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAutoUpdateStatistics property of the DATABASEPROPERTYEX function.

Per altre informazioni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ONON
Specifica che gli aggiornamenti delle statistiche per l'opzione AUTO_UPDATE_STATISTICS sono asincroni.Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are asynchronous. Query Optimizer non attende il completamento degli aggiornamenti delle statistiche per compilare le query.The query optimizer doesn't wait for statistics updates to complete before it compiles queries.

L'impostazione di questa opzione su ON non produce alcun effetto, a meno che AUTO_UPDATE_STATISTICS non sia impostata su ON.Setting this option to ON has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

Per impostazione predefinita, l'opzione AUTO_UPDATE_STATISTICS_ASYNC è impostata su OFF. Query Optimizer aggiorna pertanto le statistiche in modo sincrono.By default, the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF, and the query optimizer updates statistics synchronously.

OFFOFF
Specifica che gli aggiornamenti delle statistiche per l'opzione AUTO_UPDATE_STATISTICS sono sincroni.Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are synchronous. Query Optimizer attende il completamento degli aggiornamenti delle statistiche per compilare le query.The query optimizer waits for statistics updates to complete before it compiles queries.

L'impostazione di questa opzione su OFF non produce alcun effetto, a meno che AUTO_UPDATE_STATISTICS non sia impostata su ON.Setting this option to OFF has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_auto_update_stats_async_on nella vista del catalogo sys.databases.You can determine this option's status by examining the is_auto_update_stats_async_on column in the sys.databases catalog view.

Per altre informazioni su quando usare gli aggiornamenti delle statistiche sincroni o asincroni, vedere la sezione "Opzioni relative alle statistiche" nel database nell'argomento Statistiche.For more information that describes when to use synchronous or asynchronous statistics updates, see the section "Using the Database-Wide Statistics Options" in Statistics.

<automatic_tuning_option> ::= <automatic_tuning_option> ::=
Si applica a: SQL Server 2017 (14.x)SQL Server 2017 (14.x).Applies to: SQL Server 2017 (14.x)SQL Server 2017 (14.x).

Abilita o disabilita l'opzione di FORCE_LAST_GOOD_PLAN ottimizzazione automatica.Enables or disables FORCE_LAST_GOOD_PLAN automatic tuning option.

FORCE_LAST_GOOD_PLAN = { ON | OFF }FORCE_LAST_GOOD_PLAN = { ON | OFF }
ONON
Il Motore di databaseDatabase Engine forza automaticamente l'ultimo piano adeguato noto presente nelle query Transact-SQLTransact-SQL nel caso in cui il piano SQL comprometta le prestazioni.The Motore di databaseDatabase Engine automatically forces the last known good plan on the Transact-SQLTransact-SQL queries where new SQL plan causes performance regressions. Il Motore di databaseDatabase Engine continua a monitorare le prestazioni delle query Transact-SQLTransact-SQL usando il piano forzato.The Motore di databaseDatabase Engine continuously monitors query performance of the Transact-SQLTransact-SQL query with the forced plan. Se si rilevano miglioramenti delle prestazioni, il Motore di databaseDatabase Engine continuerà a usare l'ultimo piano adeguato noto.If there are performance gains, the Motore di databaseDatabase Engine will keep using last known good plan. Se non si rilevano miglioramenti delle prestazioni, il Motore di databaseDatabase Engine creerà un nuovo piano SQL.If performance gains are not detected, the Motore di databaseDatabase Engine will produce a new SQL plan. L'istruzione avrà esito negativo se Query Store non è abilitato o se non è in modalità di lettura/scrittura.The statement will fail if Query Store isn't enabled or if it isn't in Read-Write mode.

OFFOFF
Il Motore di databaseDatabase Engine segnala potenziali regressioni di prestazioni delle query causate da modifiche apportate al piano SQL nella vista sys.dm_db_tuning_recommendations.The Motore di databaseDatabase Engine reports potential query performance regressions caused by SQL plan changes in sys.dm_db_tuning_recommendations view. I consigli qui segnalati non vengono tuttavia applicati automaticamente.However, these recommendations are not automatically applied. È possibile visualizzare i consigli attivi e risolvere i problemi identificati applicando gli script Transact-SQLTransact-SQL disponibili nella vista.User can monitor active recommendations and fix identified problems by applying Transact-SQLTransact-SQL scripts that are shown in the view. Si tratta del valore predefinito.This is the default value.

<change_tracking_option> ::=<change_tracking_option> ::=

Controlla le opzioni di rilevamento delle modifiche.Controls change tracking options. È possibile abilitare il rilevamento delle modifiche, impostare le opzioni, modificare le opzioni e disabilitare il rilevamento delle modifiche.You can enable change tracking, set options, change options, and disable change tracking. Per alcuni esempi, vedere la sezione Esempi più avanti in questo articolo.For examples, see the Examples section later in this article.

ONON
Abilita il rilevamento delle modifiche per il database.Enables change tracking for the database. Quando si abilita il rilevamento delle modifiche, è possibile impostare anche le opzioni AUTO CLEANUP e CHANGE RETENTION.When you enable change tracking, you can also set the AUTO CLEANUP and CHANGE RETENTION options.

AUTO_CLEANUP = { ON | OFF }AUTO_CLEANUP = { ON | OFF }
ONON
Le informazioni sul rilevamento delle modifiche vengono rimosse automaticamente una volta trascorso il periodo di conservazione specificato.Change tracking information is automatically removed after the specified retention period.

OFFOFF
I dati relativi al rilevamento delle modifiche non vengono rimossi dal database.Change tracking data isn't removed from the database.

CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES }CHANGE_RETENTION =retention_period { DAYS | HOURS | MINUTES }
Specifica il periodo minimo di conservazione delle informazioni sul rilevamento delle modifiche nel database.Specifies the minimum period for keeping change tracking information in the database. I dati vengono rimossi solo quando il valore di AUTO_CLEANUP è ON.Data is removed only when the AUTO_CLEANUP value is ON.

retention_period è un numero intero che specifica il componente numerico del periodo di memorizzazione.retention_period is an integer that specifies the numerical component of the retention period.

L'impostazione predefinita è 2 giorni.The default retention period is 2 days. Il periodo di memorizzazione minimo è 1 minuto.The minimum retention period is 1 minute. Il tipo di memorizzazione predefinito è DAYS.The default retention type is DAYS.

OFFOFF
Disabilita il rilevamento delle modifiche per il database.Disables change tracking for the database. Prima di disabilitare il rilevamento delle modifiche per il database, disabilitarlo per tutte le tabelle.Disable change tracking on all tables before you disable change tracking off the database.

<cursor_option> ::=<cursor_option> ::=

Consente di controllare le opzioni del cursore.Controls cursor options.

CURSOR_CLOSE_ON_COMMIT { ON | OFF }CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ONON
Quando si esegue il commit o il rollback di una transazione, eventuali cursori aperti vengono chiusi.Any cursors open when you commit or roll back a transaction are closed.

OFFOFF
I cursori rimangono aperti quando viene eseguito il commit di una transazione. Quando si esegue il rollback di una transazione vengono chiusi tutti i cursori, ad eccezione di quelli definiti come INSENSITIVE o STATIC.Cursors remain open when a transaction is committed; rolling back a transaction closes any cursors except those defined as INSENSITIVE or STATIC.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per CURSOR_CLOSE_ON_COMMIT.Connection-level settings that are set by using the SET statement override the default database setting for CURSOR_CLOSE_ON_COMMIT. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta CURSOR_CLOSE_ON_COMMIT su OFF per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting CURSOR_CLOSE_ON_COMMIT to OFF for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET CURSOR_CLOSE_ON_COMMIT.For more information, see SET CURSOR_CLOSE_ON_COMMIT.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_cursor_close_on_commit_on nella vista del catalogo sys.databases oppure la proprietà IsCloseCursorsOnCommitEnabled della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the is_cursor_close_on_commit_on column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function. Il cursore viene deallocato in modo implicito soltanto al momento della disconnessione.The cursor is implicitly deallocated only at disconnect. Per altre informazioni, vedere DECLARE CURSOR.For more information, see DECLARE CURSOR.

<db_encryption_option> ::=<db_encryption_option> ::=

Controlla lo stato della crittografia del database.Controls the database encryption state.

ENCRYPTION { ON | OFF }ENCRYPTION { ON | OFF }
Imposta il database in modo che sia crittografato (ON) o non crittografato (OFF).Sets the database to be encrypted (ON) or not encrypted (OFF). Per altre informazioni sulla crittografia del database, vedere Transparent Data Encryption e Transparent Data Encryption con il database SQL di Azure.For more information about database encryption, see Transparent Data Encryption, and Transparent Data Encryption with Azure SQL Database.

Se la crittografia è abilitata a livello di database, vengono crittografati tutti i filegroup.When encryption is enabled at the database level, all filegroups will be encrypted. Qualsiasi filegroup nuovo eredita la proprietà di crittografia.Any new filegroups will inherit the encrypted property. Se in un database sono presenti filegroup impostati su READ ONLY, l'operazione di crittografia del database avrà esito negativo.If any filegroups in the database are set to READ ONLY, the database encryption operation will fail.

È possibile visualizzare lo stato della crittografia del database usando la DMV sys.dm_database_encryption_keys.You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.

<db_update_option> ::=<db_update_option> ::=

Indica se sono consentiti aggiornamenti nel database.Controls whether updates are allowed on the database.

READ_ONLYREAD_ONLY
Gli utenti possono leggere i dati dal database, ma non modificarli.Users can read data from the database but not modify it.

Nota

Per migliorare le prestazioni di esecuzione delle query, aggiornare le statistiche prima di impostare un database su READ_ONLY.To improve query performance, update statistics before setting a database to READ_ONLY. Se dopo che un database viene impostato su READ_ONLY sono necessarie statistiche aggiuntive, nel Motore di databaseDatabase Engine verranno create statistiche in tempdb.If additional statistics are needed after a database is set to READ_ONLY, the Motore di databaseDatabase Engine will create statistics in tempdb. Per altre informazioni sulle statistiche per un database di sola lettura, vedere Statistiche.For more information about statistics for a read-only database, see Statistics.

READ_WRITEREAD_WRITE
Il database è disponibile per operazioni di lettura e scrittura.The database is available for read and write operations.

Per modificare questo stato, è necessario disporre dell'accesso esclusivo al database.To change this state, you must have exclusive access to the database.

<db_user_access_option> ::=<db_user_access_option> ::=

Controlla l'accesso degli utenti al database.Controls user access to the database.

RESTRICTED_USERRESTRICTED_USER
RESTRICTED_USER consente la connessione al database solo ai membri del ruolo predefinito del database db_owner e ai membri dei ruoli predefiniti del server dbcreator e sysadmin, senza tuttavia imporre un limite al numero di connessioni.RESTRICTED_USER allows for only members of the db_owner fixed database role and dbcreator and sysadmin fixed server roles to connect to the database, but doesn't limit their number. Tutte le connessioni al database vengono interrotte entro l'intervallo di tempo specificato nella clausola di interruzione dell'istruzione ALTER DATABASE.All connections to the database are disconnected in the timeframe specified by the termination clause of the ALTER DATABASE statement. Dopo l'impostazione dello stato RESTRICTED_USER per il database, qualsiasi tentativo di connessione da parte di utenti non qualificati viene rifiutato.After the database has transitioned to the RESTRICTED_USER state, connection attempts by unqualified users are refused. RESTRICTED_USER non può essere modificato con l'istanza gestita di database SQL.RESTRICTED_USER can't be modified with SQL Database managed instance.

MULTI_USERMULTI_USER
Consente la connessione al database a tutti gli utenti che dispongono di autorizzazioni appropriate.All users that have the appropriate permissions to connect to the database are allowed.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna user_access nella vista del catalogo sys.databases oppure la proprietà UserAccess della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the user_access column in the sys.databases catalog view or the UserAccess property of the DATABASEPROPERTYEX function.

<delayed_durability_option> ::=<delayed_durability_option> ::=

Determina se le transazioni sottoposte a commit sono completamente durevoli o durevoli posticipate.Controls whether transactions commit fully durable or delayed durable.

DISABLEDDISABLED
Tutte le transazioni in cui viene usato SET DISABLED sono completamente durevoli.All transactions following SET DISABLED are fully durable. Tutte le opzioni di durabilità impostate in un blocco atomico o in un'istruzione COMMIT vengono ignorate.Any durability options set in an atomic block or commit statement are ignored.

ALLOWEDALLOWED
Tutte le transazioni in cui viene usato SET ALLOWED sono completamente durevoli o durevoli posticipate, a seconda del set di opzioni di durabilità nel blocco atomico o nell'istruzione COMMIT.All transactions following SET ALLOWED are either fully durable or delayed durable, depending upon the durability option set in the atomic block or commit statement.

FORCEDFORCED
Tutte le transazioni in cui viene usato SET FORCED sono durevoli posticipate.All transactions following SET FORCED are delayed durable. Tutte le opzioni di durabilità impostate in un blocco atomico o in un'istruzione COMMIT vengono ignorate.Any durability options set in an atomic block or commit statement are ignored.

<PARAMETERIZATION_option> ::=<PARAMETERIZATION_option> ::=

Consente di controllare l'opzione di parametrizzazione.Controls the parameterization option.

PARAMETERIZATION { SIMPLE | FORCED }PARAMETERIZATION { SIMPLE | FORCED }
SIMPLESIMPLE
Le query vengono parametrizzate in base al comportamento predefinito del database.Queries are parameterized based on the default behavior of the database.

FORCEDFORCED
Con SQL ServerSQL Server viene eseguita la parametrizzazione di tutte le query nel database.SQL ServerSQL Server parameterizes all queries in the database.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna is_parameterization_forced nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the is_parameterization_forced column in the sys.databases catalog view.

<query_store_options> ::=<query_store_options> ::=

ON | OFF | CLEAR [ ALL ]ON | OFF | CLEAR [ ALL ]
Verifica se Query Store è abilitato nel database e controlla la rimozione del contenuto di Query Store.Controls if the query store is enabled in this database, and also controls removing the contents of the query store.

ONON
Abilita Query Store.Enables the query store.

OFFOFF
Disabilita Query Store.Disables the query store. Si tratta del valore predefinito.This is the default value.

CLEARCLEAR
Rimuove il contenuto di Query Store.Remove the contents of the query store.

OPERATION_MODEOPERATION_MODE
Descrive la modalità di funzionamento di Query Store.Describes the operation mode of the query store. I valori validi sono READ_ONLY e READ_WRITE.Valid values are READ_ONLY and READ_WRITE. In modalità READ_WRITE l'archivio query raccoglie e mantiene le informazioni di statistiche sull'esecuzione di runtime e piani di query.In READ_WRITE mode, the query store collects and persists query plan and runtime execution statistics information. In modalità READ_ONLY le informazioni possono essere lette dall'archivio query, ma non vengono aggiunte nuove informazioni.In READ_ONLY mode, information can be read from the query store, but new information isn't added. Se lo spazio massimo allocato dell'archivio di query viene esaurito, la modalità di funzionamento dell'archivio di query passa a READ_ONLY.If the maximum allocated space of the query store has been exhausted, the query store will change is operation mode to READ_ONLY.

CLEANUP_POLICYCLEANUP_POLICY
Descrive i criteri di conservazione dati di Query Store.Describes the data retention policy of the query store. STALE_QUERY_THRESHOLD_DAYS determina il numero di giorni in cui le informazioni per una query vengono conservate nell'archivio query.STALE_QUERY_THRESHOLD_DAYS determines the number of days for which the information for a query is kept in the query store. STALE_QUERY_THRESHOLD_DAYS è di tipo bigint.STALE_QUERY_THRESHOLD_DAYS is type bigint.

DATA_FLUSH_INTERVAL_SECONDSDATA_FLUSH_INTERVAL_SECONDS
Determina la frequenza con cui i dati scritti nell'archivio query vengono mantenuti su disco.Determines the frequency at which data written to the query store is persisted to disk. Per ottimizzare le prestazioni, i dati raccolti dall'archivio query vengono scritti in modo asincrono sul disco.To optimize for performance, data collected by the query store is asynchronously written to the disk. La frequenza con cui si verifica questo trasferimento asincrono viene configurata tramite l'argomento DATA_FLUSH_INTERVAL_SECONDS.The frequency at which this asynchronous transfer occurs is configured by using the DATA_FLUSH_INTERVAL_SECONDS argument. DATA_FLUSH_INTERVAL_SECONDS è di tipo bigint.DATA_FLUSH_INTERVAL_SECONDS is type bigint.

MAX_STORAGE_SIZE_MBMAX_STORAGE_SIZE_MB
Determina lo spazio allocato per l'archivio query.Determines the space allocated to the query store. MAX_STORAGE_SIZE_MB è di tipo bigint.MAX_STORAGE_SIZE_MB is type bigint.

INTERVAL_LENGTH_MINUTESINTERVAL_LENGTH_MINUTES
Determina l'intervallo di tempo in cui vengono aggregati i dati delle statistiche di esecuzione di runtime nell'archivio query.Determines the time interval at which runtime execution statistics data is aggregated into the query store. Per ottimizzare l'utilizzo dello spazio, le statistiche di esecuzione di runtime nell'archivio di statistiche di runtime vengono aggregate in un intervallo di tempo fisso.To optimize for space usage, the runtime execution statistics in the runtime stats store are aggregated over a fixed time window. L'intervallo di tempo predefinito viene configurato tramite l'argomento INTERVAL_LENGTH_MINUTES.This fixed time window is configured by using the INTERVAL_LENGTH_MINUTES argument. INTERVAL_LENGTH_MINUTES è di tipo bigint.INTERVAL_LENGTH_MINUTES is type bigint.

SIZE_BASED_CLEANUP_MODESIZE_BASED_CLEANUP_MODE
Determina se la pulizia viene attivata automaticamente quando la quantità totale dei dati ha quasi raggiunto le dimensioni massime:Controls whether cleanup will be automatically activated when total amount of data gets close to maximum size:

OFFOFF
La pulizia basata sulle dimensioni non sarà attivata automaticamente.Size based cleanup won't be automatically activated.

AUTOAUTO
La pulizia basata sulle dimensioni sarà attivata automaticamente quando le dimensioni su disco raggiungeranno il 90% di max_storage_size_mb.Size based cleanup will be automatically activated when size on disk reaches 90% of max_storage_size_mb. La pulizia basata sulle dimensioni rimuove per prime le query meno recenti e meno dispendiose.Size based cleanup removes the least expensive and oldest queries first. Si arresta quando raggiunge all'incirca l'80% di max_storage_size_mb.It stops at approximately 80% of max_storage_size_mb. Si tratta del valore di configurazione predefinito.This is the default configuration value.

SIZE_BASED_CLEANUP_MODE è di tipo nvarchar.SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODEQUERY_CAPTURE_MODE
Determina la modalità di acquisizione query attiva.Designates the currently active query capture mode.

ALLALL
Vengono acquisite tutte le query.All queries are captured. Si tratta del valore di configurazione predefinito.This is the default configuration value.

AUTOAUTO
Acquisisce le query pertinenti in base al conteggio delle esecuzioni e al consumo delle risorse. Si tratta del valore di configurazione predefinito per Database SQLSQL DatabaseCapture relevant queries based on execution count and resource consumption.This is the default configuration value for Database SQLSQL Database

NessunoNONE
Consente di arrestare l'acquisizione di nuove query.Stop capturing new queries. Query Store continuerà a raccogliere le statistiche di compilazione e runtime per le query che sono già state acquisite.Query Store will continue to collect compile and runtime statistics for queries that were captured already. È consigliabile usare questa configurazione con attenzione per evitare che query importanti non siano acquisite.Use this configuration with caution since you may miss to capture important queries.

QUERY_CAPTURE_MODE è di tipo nvarchar.QUERY_CAPTURE_MODE is type nvarchar.

max_plans_per_queryMAX_PLANS_PER_QUERY
Intero che rappresenta il numero massimo di piani mantenuti per ogni query.An integer representing the maximum number of plans maintained for each query. Il valore predefinito è 200.Default is 200.

<snapshot_option> ::=<snapshot_option> ::=

Determina il livello di isolamento delle transazioni.Determines the transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION { ON | OFF }ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ONON
Abilita l'opzione Snapshot a livello di database.Enables Snapshot option at the database level. Quando è abilitata, le istruzioni DML iniziano la generazione di versioni di riga anche quando nessuna transazione usano l'isolamento dello snapshot.When it is enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. Una volta abilitata l'opzione, le transazioni possono specificare il livello di isolamento della transazione SNAPSHOT.Once this option is enabled, transactions can specify the SNAPSHOT transaction isolation level. Nelle transazioni eseguite con il livello di isolamento SNAPSHOT, tutte le istruzioni possono accedere a uno snapshot dei dati corrispondente allo stato dei dati al momento dell'avvio della transazione.When a transaction runs at the SNAPSHOT isolation level, all statements see a snapshot of data as it exists at the start of the transaction. Se una transazione eseguita con il livello di isolamento SNAPSHOT deve accedere ai dati in più database, è necessario impostare ALLOW_SNAPSHOT_ISOLATION su ON in tutti i database oppure ogni istruzione della transazione deve usare hint di blocco per qualsiasi riferimento in una clausola FROM a una tabella di un database per cui l'opzione ALLOW_SNAPSHOT_ISOLATION è impostata su OFF.If a transaction running at the SNAPSHOT isolation level accesses data in multiple databases, either ALLOW_SNAPSHOT_ISOLATION must be set to ON in all the databases, or each statement in the transaction must use locking hints on any reference in a FROM clause to a table in a database where ALLOW_SNAPSHOT_ISOLATION is OFF.

OFFOFF
Consente di disabilitare l'opzione relativa allo snapshot a livello di database.Turns off the Snapshot option at the database level. Per le transazioni non può essere impostato il livello di isolamento SNAPSHOT.Transactions can't specify the SNAPSHOT transaction isolation level.

Quando si imposta un nuovo stato per l'opzione ALLOW_SNAPSHOT_ISOLATION (da ON a OFF oppure da OFF a ON), ALTER DATABASE restituisce il controllo al chiamante solo dopo il completamento del commit di tutte le transazioni esistenti nel database.When you set ALLOW_SNAPSHOT_ISOLATION to a new state (from ON to OFF, or from OFF to ON), ALTER DATABASE doesn't return control to the caller until all existing transactions in the database are committed. Se per il database è già attivo lo stato specificato nell'istruzione ALTER DATABASE, il controllo viene restituito immediatamente al chiamante.If the database is already in the state specified in the ALTER DATABASE statement, control is returned to the caller immediately. Se l'istruzione ALTER DATABASE non restituisce il controllo rapidamente, usare sys.dm_tran_active_snapshot_database_transactions per verificare se sono presenti transazioni con esecuzione prolungata.If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. Se l'istruzione ALTER DATABASE viene annullata, il database rimane nello stato attivo al momento dell'avvio dell'istruzione ALTER DATABASE.If the ALTER DATABASE statement is canceled, the database remains in the state it was in when ALTER DATABASE was started. La vista del catalogo sys.databases indica lo stato delle transazioni di isolamento dello snapshot nel database.The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. Se snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF attenderà sei secondi prima di ritentare l'operazione.If snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF will pause six seconds and retry the operation.

Non è possibile cambiare lo stato di ALLOW_SNAPSHOT_ISOLATION se il database è OFFLINE.You can't change the state of ALLOW_SNAPSHOT_ISOLATION if the database is OFFLINE.

Se si imposta ALLOW_SNAPSHOT_ISOLATION in un database READ_ONLY, tale impostazione viene mantenuta anche se il database viene in seguito impostato su READ_WRITE.If you set ALLOW_SNAPSHOT_ISOLATION in a READ_ONLY database, the setting will be kept if the database is later set to READ_WRITE.

È possibile modificare le impostazioni di ALLOW_SNAPSHOT_ISOLATION per i database master, model, msdb e tempdb.You can change the ALLOW_SNAPSHOT_ISOLATION settings for the master, model, msdb, and tempdb databases. Se si cambia l'impostazione per il database tempdb, tale impostazione viene mantenuta ogni volta che l'istanza del Motore di databaseDatabase Engine viene arrestata e riavviata.The setting is kept every time the instance of the Motore di databaseDatabase Engine is stopped and restarted if you change the setting for tempdb. Se si modifica l'impostazione per il database model, questa diventa l'impostazione predefinita per i nuovi database creati, con l'eccezione di tempdb.If you change the setting for model, that setting becomes the default for any new databases that are created, except for tempdb.

L'impostazione predefinita dell'opzione è ON per i database master e msdb.The option is ON, by default, for the master and msdb databases.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna snapshot_isolation_state nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the snapshot_isolation_state column in the sys.databases catalog view.

READ_COMMITTED_SNAPSHOT { ON | OFF }READ_COMMITTED_SNAPSHOT { ON | OFF }
ONON
Abilita l'opzione relativa allo snapshot Read Committed a livello di database.Enables Read-Committed Snapshot option at the database level. Se questa opzione è abilitata, le istruzioni DML iniziano a generare versioni di riga anche quando nessuna transazione usa l'isolamento dello snapshot.When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. Una volta abilitata questa opzione, le transazioni che specificano il livello di isolamento Read committed usano il controllo delle versioni delle righe anziché il blocco.Once this option is enabled, the transactions specifying the read committed isolation level use row versioning instead of locking. Quando una transazione viene eseguita con il livello di isolamento Read Committed, tutte le istruzioni vedono uno snapshot dei dati nello stato in cui si trovano all'avvio dell'istruzione.All statements see a snapshot of data as it exists at the start of the statement when a transaction runs at the read committed isolation level.

OFFOFF
Disabilita l'opzione relativa allo snapshot Read Committed a livello di database.Turns off Read-Committed Snapshot option at the database level. Le transazioni per cui è impostato il livello di isolamento READ COMMITTED usano il blocco.Transactions specifying the READ COMMITTED isolation level use locking.

Per impostare READ_COMMITTED_SNAPSHOT su ON oppure OFF, è necessario che non siano presenti connessioni attive al database, ad eccezione della connessione usata per eseguire il comando ALTER DATABASE.To set READ_COMMITTED_SNAPSHOT ON or OFF, there must be no active connections to the database except for the connection executing the ALTER DATABASE command. Non è tuttavia necessario che il database sia in modalità utente singolo.However, the database doesn't have to be in single-user mode. Non è possibile cambiare lo stato di questa opzione quando il database è OFFLINE.You can't change the state of this option when the database is OFFLINE.

Se si imposta READ_COMMITTED_SNAPSHOT in un database READ_ONLY, tale impostazione viene mantenuta anche se il database viene in seguito impostato su READ_WRITE.If you set READ_COMMITTED_SNAPSHOT in a READ_ONLY database, the setting will be kept when the database is later set to READ_WRITE.

Non è possibile impostare READ_COMMITTED_SNAPSHOT su ON per i database di sistema master, tempdb o msdb.READ_COMMITTED_SNAPSHOT can't be turned ON for the master, tempdb, or msdb system databases. Se si modifica l'impostazione per il database model, questa diventa l'impostazione predefinita per i nuovi database creati, con l'eccezione di tempdb.If you change the setting for model, that setting becomes the default for any new databases created, except for tempdb.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna is_read_committed_snapshot_on nella vista del catalogo sys.databases.The current setting of this option can be determined by examining the is_read_committed_snapshot_on column in the sys.databases catalog view.

Avviso

Quando si crea una tabella con DURABILITY = SCHEMA_ONLY, e successivamente si modifica READ_COMMITTED_SNAPSHOT usando ALTER DATABASE, i dati della tabella andranno perduti.When a table is created with DURABILITY = SCHEMA_ONLY, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE, data in the table will be lost.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
ONON
Quando l'isolamento della transazione è impostato su un livello inferiore a SNAPSHOT, tutte le operazioni interpretate di Transact-SQLTransact-SQL nelle tabelle ottimizzate per la memoria vengono eseguite con l'isolamento SNAPSHOT.When the transaction isolation level is set to any isolation level lower than SNAPSHOT, all interpreted Transact-SQLTransact-SQL operations on memory-optimized tables are run under SNAPSHOT isolation. I livelli di isolamento inferiori a SNAPSHOT sono, ad esempio, READ COMMITTED e READ UNCOMMITTED.Examples of isolation levels lower than snapshot are READ COMMITTED or READ UNCOMMITTED. Queste operazioni vengono eseguite indipendentemente dal fatto che venga impostato in modo esplicito il livello di isolamento della transazione a livello di sessione o che venga usata in modo implicito l'impostazione predefinita.These operations run whether the transaction isolation level is set explicitly at the session level, or the default is used implicitly.

OFFOFF
Non eleva il livello di isolamento della transazione per le operazioni interpretate di Transact-SQLTransact-SQL nelle tabelle ottimizzate per la memoria.Doesn't elevate the transaction isolation level for interpreted Transact-SQLTransact-SQL operations on memory-optimized tables.

Non è possibile cambiare lo stato di MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT se il database è OFFLINE.You can't change the state of MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT if the database is OFFLINE.

Il valore predefinito è OFF.The default value is OFF.

Per determinare l'impostazione corrente di questa opzione, è possibile esaminare la colonna memory_optimized_elevate_to_snapshot nella vista del catalogo sys.database.The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on column in the sys.databases catalog view.

<sql_option> ::=<sql_option> ::=

Controlla le opzioni di conformità ANSI a livello di database.Controls the ANSI compliance options at the database level.

ANSI_NULL_DEFAULT { ON | OFF }ANSI_NULL_DEFAULT { ON | OFF }
Determina il valore predefinito, NULL o NOT NULL, per una colonna o un tipo CLR definito dall'utente per cui il supporto dei valori Null non è definito in modo esplicito nell'istruzione CREATE TABLE o ALTER TABLE.Determines the default value, NULL or NOT NULL, of a column or CLR user-defined type for which the nullability isn't explicitly defined in CREATE TABLE or ALTER TABLE statements. Le colonne definite con vincoli seguono le regole dei vincoli indipendentemente da questa impostazione.Columns that are defined with constraints follow constraint rules whatever this setting may be.

ONON
Il valore predefinito è NULL.The default value is NULL.

OFFOFF
Il valore predefinito è NOT NULL.The default value is NOT NULL.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_NULL_DEFAULT.Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_NULL_DEFAULT. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_NULL_DEFAULT su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULL_DEFAULT to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_NULL_DFLT_ON.For more information, see SET ANSI_NULL_DFLT_ON.

Per motivi di compatibilità con ANSI, l'impostazione dell'opzione di database ANSI_NULL_DEFAULT su ON modifica l'impostazione predefinita del database su NULL.For ANSI compatibility, setting the database option ANSI_NULL_DEFAULT to ON changes the database default to NULL.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_null_default_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_null_default_on column in the sys.databases catalog view. oppure la proprietà IsAnsiNullDefault della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiNullDefault property of the DATABASEPROPERTYEX function.

ANSI_NULLS { ON | OFF }ANSI_NULLS { ON | OFF }
ONON
Tutti i confronti con un valore Null restituiscono UNKNOWN.All comparisons to a null value evaluate to UNKNOWN.

OFFOFF
I confronti di valori non UNICODE con un valore Null restituiscono TRUE se entrambi i valori sono NULL.Comparisons of non-UNICODE values to a null value evaluate to TRUE if both values are NULL.

Importante

In una versione futura di SQL ServerSQL Server, ANSI_NULLS sarà sempre impostata su ON e qualsiasi applicazione che imposta tale opzione in modo esplicito su OFF genererà un errore.In a future version of SQL ServerSQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_NULLS.Connection-level settings that are set by using the SET statement override the default database setting for ANSI_NULLS. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_NULLS su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULLS to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_NULLS.For more information, see SET ANSI_NULLS.

È inoltre necessario che l'opzione SET ANSI_NULLS sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ANSI_NULLS also must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_nulls_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_nulls_on column in the sys.databases catalog view. oppure la proprietà IsAnsiNullsEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiNullsEnabled property of the DATABASEPROPERTYEX function.

ANSI_PADDING { ON | OFF }ANSI_PADDING { ON | OFF }
ONON
Le stringhe vengono riempite in modo che abbiano tutte la stessa lunghezza prima della conversione.Strings are padded to the same length before conversion. o dell'inserimento in un tipo di dati varchar o nvarchar.Also padded to the same length before inserting to a varchar or nvarchar data type.

OFFOFF
Vengono inseriti spazi vuoti finali nei valori di tipo carattere in colonne di tipo varchar o nvarchar.Inserts trailing blanks in character values into varchar or nvarchar columns. Vengono inoltre lasciati gli zeri finali nei valori binari inseriti nelle colonne di tipo varbinary.Also leaves trailing zeros in binary values that are inserted into varbinary columns. I valori non vengono riempiti per l'intera lunghezza della colonna.Values aren't padded to the length of the column.

Se si specifica OFF, questa impostazione ha effetto solo sulla definizione di nuove colonne.When OFF is specified, this setting affects only the definition of new columns.

Importante

In una versione futura di SQL ServerSQL Server, ANSI_PADDING sarà sempre impostata su ON e qualsiasi applicazione che imposta tale opzione in modo esplicito su OFF genererà un errore.In a future version of SQL ServerSQL Server, ANSI_PADDING will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. È consigliabile impostare l'opzione ANSI_PADDING sempre su ON.We recommend that you always set ANSI_PADDING to ON. È necessario che l'opzione ANSI_PADDING sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.ANSI_PADDING must be ON when you create or manipulate indexes on computed columns or indexed views.

Le colonne char(n) e binary(n) che consentono valori Null vengono riempite fino alla loro lunghezza quando ANSI_PADDING è impostata su ON.char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. I valori vuoti e gli zeri finali vengono eliminati quando ANSI_PADDING è impostata su OFF.Trailing blanks and zeros are trimmed when ANSI_PADDING is OFF. Le colonne char(n) e binary(n) che non consentono valori Null vengono sempre riempite fino alla loro lunghezza.char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_PADDING.Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_PADDING. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_PADDING su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_PADDING to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_PADDING.For more information, see SET ANSI_PADDING.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_padding_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_padding_on column in the sys.databases catalog view. oppure la proprietà IsAnsiPaddingEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiPaddingEnabled property of the DATABASEPROPERTYEX function.

ANSI_WARNINGS { ON | OFF }ANSI_WARNINGS { ON | OFF }
ONON
Vengono restituiti messaggi di errore o di avviso quando si verificano condizioni come la divisione per zeroErrors or warnings are issued when conditions such as divide-by-zero occur. e inoltre quando nelle funzioni di aggregazione sono presenti valori Null.Errors and warnings are also issued when null values appear in aggregate functions.

OFFOFF
Non vengono generati avvisi e vengono restituiti valori Null quando si verificano condizioni come la divisione per zero.No warnings are raised and null values are returned when conditions such as divide-by-zero occur.

È necessario che l'opzione ANSI_WARNINGS sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ANSI_WARNINGS must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per ANSI_WARNINGS.Connection-level settings that are set by using the SET statement override the default database setting for ANSI_WARNINGS. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta ANSI_WARNINGS su ON per la sessione.ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_WARNINGS to ON for the session, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_WARNINGS.For more information, see SET ANSI_WARNINGS.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_warnings_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_ansi_warnings_on column in the sys.databases catalog view. oppure la proprietà IsAnsiWarningsEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsAnsiWarningsEnabled property of the DATABASEPROPERTYEX function.

ARITHABORT { ON | OFF }ARITHABORT { ON | OFF }
ONON
Interrompe una query quando si verifica un overflow o un errore di divisione per zero durante l'esecuzione della query stessa.A query is ended when an overflow or divide-by-zero error occurs during query execution.

OFFOFF
Quando si verifica uno di questi errori, viene visualizzato un messaggio di avviso.A warning message is displayed when one of these errors occurs. L'esecuzione della query, del batch o della transazione prosegue come se non si fosse verificato alcun errore, anche se viene visualizzato un messaggio di avviso.The query, batch, or transaction continues to process as if no error occurred even if a warning is displayed.

È necessario che l'opzione ARITHABORT sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.SET ARITHABORT must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_arithabort_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_arithabort_on column in the sys.databases catalog view. oppure la proprietà IsArithmeticAbortEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsArithmeticAbortEnabled property of the DATABASEPROPERTYEX function.

COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 }COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 }
Per altre informazioni, vedere Livello di compatibilità ALTER DATABASE.For more information, see ALTER DATABASE Compatibility Level.

CONCAT_NULL_YIELDS_NULL { ON | OFF }CONCAT_NULL_YIELDS_NULL { ON | OFF }
ONON
Il risultato di un'operazione di concatenazione è NULL quando uno degli operandi è NULL.The result of a concatenation operation is NULL when either operand is NULL. La concatenazione della stringa di caratteri "Questo è" con NULL restituisce, ad esempio, il valore NULL anziché il valore "Questo è".For example, concatenating the character string "This is" and NULL causes the value NULL, instead of the value "This is".

OFFOFF
Il valore Null viene considerato come una stringa di caratteri vuota.The null value is treated as an empty character string.

È necessario che l'opzione CONCAT_NULL_YIELDS_NULL sia impostata su ON durante la creazione o la modifica di indici in colonne calcolate o viste indicizzate.CONCAT_NULL_YIELDS_NULL must be set to ON when you create or make changes to indexes on computed columns or indexed views.

Importante

In una versione futura di SQL ServerSQL Server, l'opzione CONCAT_NULL_YIELDS_NULL sarà sempre impostata su ON e qualsiasi applicazione che la imposta in modo esplicito su OFF restituirà un errore.In a future version of SQL ServerSQL Server, CONCAT_NULL_YIELDS_NULL will always be ON and any applications that explicitly set the option to OFF will produce an error. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per CONCAT_NULL_YIELDS_NULL.Connection-level settings that are set by using the SET statement override the default database setting for CONCAT_NULL_YIELDS_NULL. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta CONCAT_NULL_YIELDS_NULL su ON per la sessione quando viene stabilita una connessione a un'istanza di SQL ServerSQL Server.By default, ODBC and OLE DB clients issue a connection-level SET statement setting CONCAT_NULL_YIELDS_NULL to ON for the session when connecting to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET CONCAT_NULL_YIELDS_NULL.For more information, see SET CONCAT_NULL_YIELDS_NULL.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_concat_null_yields_null_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_concat_null_yields_null_on column in the sys.databases catalog view. oppure la proprietà IsNullConcat della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsNullConcat property of the DATABASEPROPERTYEX function.

QUOTED_IDENTIFIER { ON | OFF }QUOTED_IDENTIFIER { ON | OFF }
ONON
È possibile delimitare gli identificatori delimitati racchiudendoli tra virgolette doppie.Double quotation marks can be used to enclose delimited identifiers.

Tutte le stringhe delimitate da virgolette doppie vengono interpretate come identificatori di oggetto.All strings delimited by double quotation marks are interpreted as object identifiers. Gli identificatori delimitati non devono necessariamente essere conformi alle regole di Transact-SQLTransact-SQL per gli identificatori.Quoted identifiers don't have to follow the Transact-SQLTransact-SQL rules for identifiers. Possono essere parole chiave e includere caratteri normalmente non consentiti negli identificatori di Transact-SQLTransact-SQL.They can be keywords and can include characters not allowed in Transact-SQLTransact-SQL identifiers. Se una virgoletta singola (') fa parte della stringa letterale, può essere rappresentata tramite virgolette doppie (").If a single quotation mark (') is part of the literal string, it can be represented by double quotation marks (").

OFFOFF
Gli identificatori non possono essere delimitati da virgolette e devono rispettare tutte le regole di Transact-SQLTransact-SQL per gli identificatori.Identifiers can't be in quotation marks and must follow all Transact-SQLTransact-SQL rules for identifiers. È possibile delimitare i valori letterali con virgolette singole o doppie.Literals can be delimited by either single or double quotation marks.

SQL ServerSQL Server consente inoltre di racchiudere gli identificatori tra parentesi quadre ([ ]).also allows for identifiers to be delimited by square brackets ([ ]). Gli identificatori tra parentesi quadre possono essere sempre usati, indipendentemente dall'impostazione di QUOTED_IDENTIFIER.Bracketed identifiers can always be used, whatever the QUOTED_IDENTIFIER setting is. Per altre informazioni, vedere Identificatori del database.For more information, see Database Identifiers.

Quando viene creata una tabella, l'opzione QUOTED IDENTIFIER viene sempre archiviata con l'impostazione ON nei relativi metadati,When a table is created, the QUOTED IDENTIFIER option is always stored as ON in the metadata of the table. anche se l'opzione è impostata su OFF.The option is stored even if the option is set to OFF when the table is created.

Le impostazioni a livello di connessione definite usando l'istruzione SET sono prioritarie rispetto all'impostazione predefinita del database per QUOTED_IDENTIFIER.Connection-level settings that are set by using the SET statement override the default database setting for QUOTED_IDENTIFIER. Per impostazione predefinita, i client ODBC e OLE DB eseguono un'istruzione SET a livello di connessione che imposta QUOTED_IDENTIFIER.ODBC and OLE DB clients issue a connection-level SET statement setting QUOTED_IDENTIFIER to ON, by default. I client eseguono l'istruzione quando ci si connette a un'istanza di SQL ServerSQL Server.The clients run the statement when you connect to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET QUOTED_IDENTIFIER.For more information, see SET QUOTED_IDENTIFIER.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_quoted_identifier_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_quoted_identifier_on column in the sys.databases catalog view. oppure la proprietà IsQuotedIdentifiersEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsQuotedIdentifiersEnabled property of the DATABASEPROPERTYEX function.

NUMERIC_ROUNDABORT { ON | OFF }NUMERIC_ROUNDABORT { ON | OFF }
ONON
Viene generato un errore quando si verifica una perdita di precisione in un'espressione.An error is generated when loss of precision occurs in an expression.

OFFOFF
La perdita di precisione non genera messaggi di errore e il risultato viene arrotondato alla precisione della colonna o della variabile in cui viene archiviato.Losses of precision don't generate error messages and the result is rounded to the precision of the column or variable storing the result.

È necessario che l'opzione NUMERIC_ROUNDABORT sia impostata su OFF quando vengono creati o modificati indici in colonne calcolate o viste indicizzate.NUMERIC_ROUNDABORT must be set to OFF when you create or make changes to indexes on computed columns or indexed views.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_numeric_roundabort_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_numeric_roundabort_on column in the sys.databases catalog view. oppure la proprietà IsNumericRoundAbortEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsNumericRoundAbortEnabled property of the DATABASEPROPERTYEX function.

RECURSIVE_TRIGGERS { ON | OFF }RECURSIVE_TRIGGERS { ON | OFF }
ONON
È consentita l'attivazione ricorsiva di trigger AFTER.Recursive firing of AFTER triggers is allowed.

OFFOFF
Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_recursive_triggers_on nella vista del catalogo sys.databasesYou can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view. oppure la proprietà IsRecursiveTriggersEnabled della funzione DATABASEPROPERTYEX.You can also determine the status by examining the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

Nota

Se l'opzione RECURSIVE_TRIGGERS è impostata su OFF, viene impedita esclusivamente la ricorsione diretta.Only direct recursion is prevented when RECURSIVE_TRIGGERS is set to OFF. Per disabilitare la ricorsione indiretta, è necessario impostare anche l'opzione del server nested triggers su 0.To disable indirect recursion, you must also set the nested triggers server option to 0.

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_recursive_triggers_on nella vista del catalogo sys.databases oppure la proprietà IsRecursiveTriggersEnabled della funzione DATABASEPROPERTYEX.You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view or the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

<target_recovery_time_option> ::=<target_recovery_time_option> ::=

Specifica la frequenza di checkpoint indiretti per database singolo.Specifies the frequency of indirect checkpoints on a per-database basis. A partire da SQL Server 2016 (13.x)SQL Server 2016 (13.x), il valore predefinito per i nuovi database è 1 minuto, a indicare che il database userà checkpoint indiretti.Beginning with SQL Server 2016 (13.x)SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database will use indirect checkpoints. Per le versioni precedenti, il valore predefinito è 0, a indicare che il database userà checkpoint automatici la cui frequenza dipende dall'impostazione dell'intervallo di recupero dell'istanza del server.For older versions the default is 0, which indicates that the database will use automatic checkpoints, whose frequency depends on the recovery interval setting of the server instance. MicrosoftMicrosoft consiglia di usare 1 minuto per la maggior parte dei sistemi.recommends 1 minute for most systems.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDI | MINUTI }TARGET_RECOVERY_TIME =target_recovery_time { SECONDS | MINUTES }
target_recovery_time target_recovery_time
Specifica il limite massimo di tempo per recuperare il database specificato in caso di un arresto anomalo del sistema.Specifies the maximum bound on the time to recover the specified database in the event of a crash.

SECONDSSECONDS
Indica che target_recovery_time viene espresso come numero di secondi.Indicates that target_recovery_time is expressed as the number of seconds.

MINUTESMINUTES
Indica che target_recovery_time viene espresso come numero di minuti.Indicates that target_recovery_time is expressed as the number of minutes.

Per altre informazioni sui checkpoint indiretti, vedere Checkpoint di database.For more information about indirect checkpoints, see Database Checkpoints.

ROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATEROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
Specifica se eseguire il rollback dopo il numero di secondi specificato o immediatamente.Specifies whether to roll back after the specified number of seconds or immediately.

NO_WAITNO_WAIT
Specifica che la richiesta ha esito negativo se non è possibile completare immediatamente la modifica richiesta dello stato del database o dell'opzione,Specifies that the request will fail if the requested database state or option change can't complete immediately. senza aspettare il commit o il rollback automatico delle transazioni.Completing immediately means not waiting for transactions to commit or roll back on their own.

Impostazione delle opzioniSetting Options

Per recuperare le impostazioni correnti delle opzioni di database, usare la vista del catalogo sys.databases o DATABASEPROPERTYEXTo retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX

Dopo avere impostato un'opzione di database, la modifica diventa effettiva immediatamente.After you set a database option, the modification takes effect immediately.

Per cambiare i valori predefiniti di qualsiasi opzione di database per tutti i nuovi database,You can change the default values for any one of the database options for all newly created databases. cambiare l'opzione appropriata nel database modello.To do so, change the appropriate database option in the model database.

EsempiExamples

A.A. Impostazione del database su READ_ONLYSetting the database to READ_ONLY

Per modificare lo stato di un database o di un filegroup impostandolo su READ_ONLY o READ_WRITE, è necessario l'accesso esclusivo al database.Changing the state of a database or filegroup to READ_ONLY or READ_WRITE requires exclusive access to the database. Nell'esempio seguente viene impostata la modalità RESTRICTED_USER per il database in modo da limitare l'accesso.The following example sets the database to RESTRICTED_USER mode to restricted access. Nell'esempio lo stato del database AdventureWorks2012AdventureWorks2012 viene quindi impostato su READ_ONLY e viene ripristinato l'accesso al database per tutti gli utenti.The example then sets the state of the AdventureWorks2012AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.

USE master;
GO
ALTER DATABASE AdventureWorks2012
SET RESTRICTED_USER;
GO
ALTER DATABASE AdventureWorks2012
SET READ_ONLY
GO
ALTER DATABASE AdventureWorks2012
SET MULTI_USER;
GO

B.B. Abilitazione dell'isolamento dello snapshot in un databaseEnabling snapshot isolation on a database

Nell'esempio seguente viene abilitata l'opzione relativa al framework di isolamento dello snapshot per il database AdventureWorks2012AdventureWorks2012.The following example enables the snapshot isolation framework option for the AdventureWorks2012AdventureWorks2012 database.

USE AdventureWorks2012;
USE master;
GO
ALTER DATABASE AdventureWorks2012
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'AdventureWorks2012';
GO

Il set di risultati indica che il framework di isolamento dello snapshot è abilitato.The result set shows that the snapshot isolation framework is enabled.

NAMEname snapshot_isolation_statesnapshot_isolation_state descriptiondescription
AdventureWorks2012AdventureWorks2012 11 ONON

C.C. Abilitazione, modifica e disabilitazione del rilevamento delle modificheEnabling, modifying, and disabling change tracking

Nell'esempio seguente viene abilitato il rilevamento delle modifiche per il database AdventureWorks2012AdventureWorks2012 e il periodo di memorizzazione viene impostato su 2 giorni.The following example enables change tracking for the AdventureWorks2012AdventureWorks2012 database and sets the retention period to 2 days.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

Nell'esempio seguente viene illustrato come modificare il periodo di memorizzazione impostandolo su 3 giorni.The following example shows how to change the retention period to 3 days.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

Nell'esempio seguente viene illustrato come disabilitare il rilevamento delle modifiche per il database AdventureWorks2012AdventureWorks2012.The following example shows how to disable change tracking for the AdventureWorks2012AdventureWorks2012 database.

ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = OFF;

D.D. Abilitazione dell'archivio di queryEnabling the query store

L'esempio seguente abilita l'archivio di query e configura i relativi parametri.The following example enables the query store and configures query store parameters.

ALTER DATABASE AdventureWorks2012
SET QUERY_STORE = ON 
  (  
      OPERATION_MODE = READ_WRITE
    , CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 )
    , DATA_FLUSH_INTERVAL_SECONDS = 900
    , MAX_STORAGE_SIZE_MB = 1024
    , INTERVAL_LENGTH_MINUTES = 60
    );

Vedere ancheSee Also

SQL ServerSQL Server Database singolo/pool elastico
database SQL
SQL Database
single database/elastic pool
Istanza gestita
database SQL
SQL Database
managed instance
** * SQL Data
Warehouse *
**  
* SQL Data
Warehouse *
 

 

Azure SQL Data WarehouseAzure SQL Data Warehouse

SintassiSyntax

ALTER DATABASE { database_name }
SET
{
    <optionspec> [ ,...n ]
}
;

<option_spec>::=
{
<RESULT_SET_CACHING>
}
;

<RESULT_SET_CACHING>::=
{
RESULT_SET_CACHING {ON | OFF}
}

ArgomentiArguments

database_namedatabase_name

Nome del database da modificare.Is the name of the database to be modified.

RESULT_SET_CACHING { ON | OFF }RESULT_SET_CACHING { ON | OFF }
Si applica ad Azure SQL Data Warehouse (anteprima)Applies to Azure SQL Data Warehouse (preview)

Questo comando deve essere eseguito mentre si è connessi al database master.This command must be run while connected to the master database. Le modifiche apportate a questa impostazione del database hanno effetto immediato.Change to this database setting takes effect immediately. La memorizzazione nella cache dei set di risultati delle query prevede l'addebito dei costi di archiviazione.Storage costs are incurred by caching query result sets. Dopo aver disabilitato la memorizzazione nella cache dei risultati per un database, la cache dei risultati precedentemente salvati in modo permanente verrà immediatamente eliminata dalla risorsa di archiviazione di Azure SQL Data Warehouse.After disabling result caching for a database, previously persisted result cache will immediately be deleted from Azure SQL Data Warehouse storage. È stata introdotta una nuova colonna denominata is_result_set_caching_on in sys.databases per visualizzare l'impostazione di memorizzazione nella cache dei risultati per un database.A new column, is_result_set_caching_on, is introduced in sys.databases to show the result cache setting for a database.

ONON
Specifica che i set di risultati delle query restituiti da questo database verranno memorizzati nella cache della risorsa di archiviazione di Azure SQL Data Warehouse.Specifies that query result sets returned from this database will be cached in Azure SQL Data Warehouse storage.

OFFOFF
Specifica che i set di risultati delle query restituiti da questo database non verranno memorizzati nella cache della risorsa di archiviazione di Azure SQL Data Warehouse.Specifies that query result sets returned from this database will not be cached in Azure SQL Data warehouse storage. Per stabilire se una query è stata eseguita con un riscontro nella cache o un mancato riscontro nella cache dei risultati, gli utenti possono eseguire una query su sys.pdw_request_steps con un ID richiesta specifico.Users can tell if a query was executed with a result cache hit or miss by querying sys.pdw_request_steps with a specific request_id. In caso di riscontro nella cache, il risultato della query presenterà un singolo passaggio con i dettagli seguenti:If there is a cache hit, the query result will have a single step with following details:

Nome colonnaColumn name OperatoreOperator ValueValue
operation_typeoperation_type = ReturnOperationReturnOperation
step_indexstep_index = 00
location_typelocation_type = ControlloControl
comandocommand Simile aLike %DWResultCacheDb%%DWResultCacheDb%

RemarksRemarks

Il set di risultati memorizzato nella cache viene riutilizzato per una query se vengono soddisfatti tutti i requisiti seguenti:Cached result set is reused for a query if all of the following requirements are all met:

  1. L'utente che esegue la query ha accesso a tutte le tabelle a cui viene fatto riferimento nella query.The user executing the query has access to all the tables referenced in the query.
  2. È presente una corrispondenza esatta tra la nuova query e la query precedente che ha generato la cache dei set di risultati.There is an exact match between the new query and the previous query that generated the result set cache.
  3. Non sono presenti dati o modifiche dello schema nelle tabelle da cui è stato generato il set di risultati memorizzato nella cache.There is no data or schema changes in the tables where the cached result set was generated from.

Dopo l'attivazione della memorizzazione nella cache del set di risultati per un database, i risultati vengono memorizzati nella cache per tutte le query finché la cache non è piena, fatta eccezione per le query con funzioni non deterministiche, ad esempio DateTime.Now().Once result set caching is turned ON for a database, results are cached for all queries until the cache is full, except for queries with non-deterministic functions such as DateTime.Now(). Le query con set di risultati di grandi dimensioni (ad esempio, > 1 milione di righe) potrebbero incontrare un rallentamento delle prestazioni durante la prima esecuzione quando viene creata la cache dei risultati.Queries with large result sets (for example, > 1 million rows) may experience slower performance during the first run when the result cache is being created.

AutorizzazioniPermissions

Richiede le autorizzazioni seguenti:Requires these permissions:

  • Accesso principale di livello server (creato dal processo di provisioning) oppureServer-level principal login (the one created by the provisioning process), or
  • Membro del ruolo del database dbmanager.Member of the dbmanager database role.

Il proprietario del database può modificare il database solo se è un membro del ruolo dbmanager.The owner of the database cannot alter the database unless the owner is a member of the dbmanager role.

EsempiExamples

Abilitare la memorizzazione nella cache dei set di risultati per un databaseEnable result set caching for a database

ALTER DATABASE myTestDW  
SET RESULT_SET_CACHING ON;

Disabilitare la memorizzazione nella cache dei set di risultati per un databaseDisable result set caching for a database

ALTER DATABASE myTestDW  
SET RESULT_SET_CACHING OFF;

Verificare l'impostazione di memorizzazione nella cache dei set di risultati per un databaseCheck result set caching setting for a database

SELECT name, is_result_set_caching_on
FROM sys.databases;

Verificare il numero di query con riscontri e mancati riscontri nella cache dei set di risultatiCheck for number of queries with result set cache hit and cache miss

SELECT  
Queries=CacheHits+CacheMisses,
CacheHits,
CacheMisses 
CacheHitPct=CacheHits*1.0/(CacheHits+CacheMisses)
FROM  
(SELECT  
CacheHits=count(distinct case when s.command like '%DWResultCacheDb%' and
r.resource_class IS NULL and s.operation_type = 'ReturnOperation' and  
s.step_index = 0 then s.request_id else null end) , 
CacheMisses=count(distinct case when r.resource_class IS NOT NULL then  
s.request_id else null end) 
     FROM sys.dm_pdw_request_steps s  
     JOIN sys.dm_pdw_exec_requests r  
     ON s.request_id = r.request_id) A;

Verificare i riscontri o i mancati riscontri nella cache dei set di risultati per una queryCheck for result set cache hit or cache miss for a query

If
(SELECT step_index  
FROM sys.dm_pdw_request_steps  
WHERE request_id = 'QID58286' and operation_type = 'ReturnOperation' and command like '%DWResultCacheDb%') = 0
SELECT 1 as is_cache_hit  
ELSE
SELECT 0 as is_cache_hit;

Verificare tutte le query con riscontri nella cache dei set di risultatiCheck for all queries with result set cache hits

SELECT *  
FROM sys.dm_pdw_request_steps  
WHERE command like '%DWResultCacheDb%' and step_index = 0;

Vedere ancheSee also