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

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

In questo argomento è inclusa la sintassi di ALTER DATABASE correlata all'impostazione delle opzioni di database in SQL ServerSQL Server.This topic contains the ALTER DATABASE syntax that is related to setting database options in SQL ServerSQL Server. Per altre informazioni sulla sintassi di ALTER DATABASE, vedere gli argomenti seguenti.For other ALTER DATABASE syntax, see the following topics.

Mirroring del database, Gruppi di disponibilità Always OnAlways On availability groups, i livelli di compatibilità SET opzioni ma che sono descritte in argomenti separati a causa della lunghezza.Database mirroring, Gruppi di disponibilità Always OnAlways On availability groups, and compatibility levels are SET options but are described in separate topics because of their length. Per ulteriori informazioni, vedere Mirroring del Database di ALTER DATABASE ( Transact-SQL ) , ALTER DATABASE SET HADR ( Transact-SQL ) , e modificare a livello di compatibilità del DATABASE ( Transact-SQL ) .For more information, see ALTER DATABASE Database Mirroring (Transact-SQL), ALTER DATABASE SET HADR (Transact-SQL), and ALTER DATABASE Compatibility Level (Transact-SQL).

Nota

Molte opzioni di set di database possono essere configurate per la sessione corrente tramite istruzioni SET ( Transact-SQL ) e spesso vengono configurate dalle applicazioni quando si connettono.Many database set options can be configured for the current session by using SET Statements (Transact-SQL) and are often configured by applications when they connect. Livello di sessione Imposta opzioni eseguono l'override di ALTER DATABASE SET valori.Session level set options override the ALTER DATABASE SET values. Le opzioni di database descritte di seguito sono valori che possono essere impostati per le sessioni mediante le quali non vengono forniti in modo esplicito altri valori di opzioni SET.The database options described below are values that can be set for sessions that do not explicitly provide other set option values.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

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

<optionspec> ::=   
{  
    <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>  
}  

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

<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 | NONE ]  
    | MAX_PLANS_PER_QUERY = number
    | WAIT_STATS_CAPTURE_MODE = [ ON | OFF ]
}  

<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 = { 90 | 100 | 110 | 120}  
  | 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 integer [ SECONDS ]   
  | ROLLBACK IMMEDIATE   
  | NO_WAIT  
}  

ArgomentiArguments

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

CURRENTCURRENT
Si applica a: SQL Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017, Database SQLSQL Database.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017, Database SQLSQL Database.

CURRENTesegue l'azione nel database corrente.CURRENT performs the action in the current database. CURRENTnon è supportata per tutte le opzioni in tutti i contesti.CURRENT is not supported for all options in all contexts. Se CURRENT ha esito negativo, fornire 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, generando un USE database_name istruzione.For example, by issuing a USE database_name statement. Se il database viene chiuso normalmente quando l'opzione AUTO_CLOSE è impostata su ON, non verrà riaperto finché un utente non tenta di usarlo al successivo riavvio di Motore di databaseDatabase Engine.If the database is shut down cleanly while AUTO_CLOSE is set to ON, the database is not reopened until a user tries to use the database the next time the Motore di databaseDatabase Engine is restarted.

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 does not reduce performance.

Nota

L'opzione AUTO_CLOSE non è disponibile in un Database indipendente o in Database SQLSQL Database.The AUTO_CLOSE option is not 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.The status of this option can be determined by examining the is_auto_close_on column in the sys.databases catalog view or the IsAutoClose property of the DATABASEPROPERTYEX function.

Nota

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.

Nota

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 2005SQL Server 2005 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 2005SQL Server 2005 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
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
In Query Optimizer non vengono create statistiche per le singole colonne nei predicati di query durante la compilazione delle query.The query optimizer does not 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.databases oppure la proprietà IsAutoCreateStatistics della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_auto_create_stats_on column in the sys.databases catalog view or the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

Per ulteriori informazioni, vedere la sezione "Utilizzo opzioni delle statistiche a livello di Database" in statistiche.For more information, see the section "Using the Database-Wide Statistics Options" in Statistics.

INCREMENTAL = ON | OFFINCREMENTAL = ON | OFF
Quando AUTO_CREATE_STATISTICS è ON e INCREMENTAL è impostata su ON, le statistiche create automaticamente vengono create come incrementali ogni volta che le statistiche incrementali sono supportate.When AUTO_CREATE_STATISTICS is ON, and INCREMENTAL is set to ON, automatically created stats are created as incremental whenever incremental stats is supported. Il valore predefinito è OFF.The default value is OFF. Per altre informazioni, vedere CREATE STATISTICS (Transact-SQL).For more information, see CREATE STATISTICS (Transact-SQL).

Si applica a: SQL Server 2014SQL Server 2014 tramite SQL Server 2017SQL Server 2017, Database SQLSQL Database.Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017, Database SQLSQL Database.

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 consente di ridurre 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 the database is set to SIMPLE recovery model or if the log is backed up. Se questa opzione è impostata su OFF, i file di database non vengono compattati automaticamente durante i controlli periodici per la presenza di spazio inutilizzato.When set to OFF, the database files are not 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. Il file viene compattato fino a quando la percentuale di spazio inutilizzato nel file è pari al 25% oppure fino a quando il file raggiunge dimensioni pari a quelle di creazione, a seconda di quale tra questi due è il valore maggiore.The file is shrunk to a size where 25 percent of the file is unused space, or to the size of the file when it was created, whichever is larger.

Non è possibile compattare un database di sola lettura.You cannot 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.databases oppure la proprietà IsAutoShrink della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_auto_shrink_on column in the sys.databases catalog view or the IsAutoShrink property of the DATABASEPROPERTYEX function.

Nota

L'opzione AUTO_SHRINK non è disponibile in un database indipendente.The AUTO_SHRINK option is not 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 are 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 prima di eseguire un piano di query memorizzato nella cache.The query optimizer checks for out-of-date statistics before compiling a query and before executing a cached query plan. Prima di compilare una query, Query Optimizer usano le colonne, le tabelle e le viste indicizzate nel predicato di query per identificare le eventuali statistiche non aggiornate.Before compiling a query, the query optimizer uses the columns, tables, and indexed views in the query predicate to determine which statistics might be out-of-date. 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 query e quando potrebbero essere obsolete.Specifies that the query optimizer does not update statistics when they are used by a query and 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.databases oppure la proprietà IsAutoUpdateStatistics della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_auto_update_stats_on column in the sys.databases catalog view or the IsAutoUpdateStatistics property of the DATABASEPROPERTYEX function.

Per ulteriori informazioni, vedere la sezione "Utilizzo opzioni delle statistiche a livello di Database" in 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 does not 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 statistcs 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.The status of this option can be determined by examining the is_auto_update_stats_async_on column in the sys.databases catalog view.

Per ulteriori informazioni su quando usare gli aggiornamenti sincroni o asincroni delle statistiche, vedere la sezione "Utilizzo opzioni delle statistiche a livello di Database" in 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 2017SQL Server 2017.Applies to: SQL Server 2017SQL Server 2017.

Abilita o disabilita FORCE_LAST_GOOD_PLAN ottimizzazione automatica opzione.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 impone automaticamente l'ultimo piano buona noto presenti il Transact-SQLTransact-SQL in nuovo piano SQL provoca regressioni delle prestazioni di query.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 continui consente di monitorare le prestazioni delle query del Transact-SQLTransact-SQL query con il piano forzato.The Motore di databaseDatabase Engine continously monitors query performance of the Transact-SQLTransact-SQL query with the forced plan. Se sono disponibili i miglioramenti delle prestazioni, la Motore di databaseDatabase Engine verrà continuare a usare ultimo piano valido noto.If there are performance gains, the Motore di databaseDatabase Engine will keep using last known good plan. Se non vengono rilevati i miglioramenti delle prestazioni, la Motore di databaseDatabase Engine produrrà 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 l'archivio Query non è abilitata o se non è incluso nella lettura-scrittura modalità.The statement will fail if Query Store is not enabled or if it is not in Read-Write mode.

OFFOFF
Il Motore di databaseDatabase Engine segnala potenziali regressioni delle prestazioni di query causate da modifiche del piano SQL in sys.dm_db_tuning_recommendations visualizzazione.The Motore di databaseDatabase Engine reports potential query performance regressions caused by SQL plan changes in sys.dm_db_tuning_recommendations view. Tuttavia, questi suggerimenti non vengono applicati automaticamente.However, these recommendations are not automatically applied. Utente possa monitorare active indicazioni e identificato risolvere i problemi di applicando Transact-SQLTransact-SQL script che vengono visualizzati nella vista.User can monitor active recomendations 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.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in 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 argomento.For examples, see the Examples section later in this topic.

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 memorizzazione 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 is not removed from the database.

CHANGE_RETENTION =retention_period {giorni | ORE | MINUTI}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 è giorni.The default retention type is DAYS.

OFFOFF
Disabilita il rilevamento delle modifiche per il database.Disables change tracking for the database. Per poter disabilitare il rilevamento delle modifiche per il database, è necessario innanzitutto disabilitarlo per tutte le tabelle.You must disable change tracking on all tables before you can disable change tracking off the database.

<containment_option >:: =<containment_option> ::=

Si applica a: SQL Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

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

INDIPENDENZA = {NESSUNO | PARZIALE}CONTAINMENT = { NONE | PARTIAL}
NessunoNONE
Il database non è un database indipendente.The database is not 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.

Nota

Contenuto non può essere configurata Database SQLSQL Database.Containment cannot be configured in Database SQLSQL Database. Contenuto non è definita in modo esplicito, ma Database SQLSQL Database consente agli utenti di database indipendente le funzionalità, ad esempio contenute.Containment is not explicitly designated, but Database SQLSQL Database can use contained features such as contained database users.

<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
Tutti i cursori aperti al momento dell'esecuzione del commit o del rollback di una transazione vengono chiusi.Any cursors open when a transaction is committed or rolled back 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 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 CURSOR_CLOSE_ON_COMMIT to OFF for the session when connecting to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL).For more information, see SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL).

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.The status of this option can be determined 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 Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

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

LOCALLOCAL
Se si specifica LOCAL e se un cursore non viene definito come GLOBAL al momento della creazione, l'ambito del cursore è locale rispetto al batch, alla stored procedure o al trigger in cui è stato creato.When LOCAL is specified and a cursor is not defined as GLOBAL when created, the scope of the cursor is local to the batch, stored procedure, or trigger in which the cursor was created. 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, a meno che non sia stato passato a un parametro OUTPUT.The cursor is implicitly deallocated when the batch, stored procedure, or trigger ends, unless it was passed back in an OUTPUT parameter. In questo caso, il cursore viene deallocato quando l'ultima variabile che vi fa riferimento viene deallocata o non è più compresa nell'ambito.If the cursor is passed back in an OUTPUT parameter, the cursor is deallocated when the last variable that references it 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 is not 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 ulteriori informazioni, vedere DECLARE CURSOR ( Transact-SQL ) .For more information, see DECLARE CURSOR (Transact-SQL).

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

<DATABASE_MIRRORING ><database_mirroring>

Si applica a: SQL ServerSQL Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

Per descrizioni di argomento, vedere Mirroring del Database di ALTER DATABASE ( Transact-SQL ) .For the argument descriptions, see ALTER DATABASE Database Mirroring (Transact-SQL).

<date_correlation_optimization_option >:: =<date_correlation_optimization_option> ::=

Si applica a: SQL ServerSQL Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

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 Servermantiene statistiche di correlazione tra due tabelle nel database che sono collegate da un vincolo FOREIGN KEY e contenenti datetime colonne. maintains correlation statistics between any two tables in the database that are linked by a FOREIGN KEY constraint and 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}ENCRYPTION {ON | OFF}
Imposta il database per l'utilizzo della crittografia (ON) o no (OFF).Sets the database to be encrypted (ON) or not encrypted (OFF). Per ulteriori informazioni sulla crittografia del database, vedere Transparent Data Encryption ( Transparent Data Encryption ) , e Transparent Data Encryption con il Database SQL di Azure.For more information about database encryption, see Transparent Data Encryption (TDE), and Transparent Data Encryption with Azure SQL Database.

Quando la crittografia è abilitata a livello di database, tutti i filegroup vengono crittografati.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 tutti i filegroup nel database sono 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 utilizzando il Sys.dm database_encryption_keys vista a gestione dinamica.You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.

<db_state_option >:: =<db_state_option> ::=

Si applica a: SQL ServerSQL Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

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. Non è possibile modificare il database mentre è offline.The database cannot be modified while it is offline.

ONLINEONLINE
Il database è aperto e disponibile per l'utilizzo.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 due to a corrupted log file can be set to the EMERGENCY state. In questo modo, l'amministratore di sistema potrà accedere in sola lettura al database.This 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: autorizzazione ALTER DATABASE per il database di interesse è necessaria per modificare un database allo stato offline o emergency.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 il Sys. Databases vista del catalogo o la proprietà Status del DATABASEPROPERTYEX (funzione).The status of this option can be determined by examining the state and state_desc columns in the sys.databases catalog view or 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 cannot 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 ulteriori 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 Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

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 sono presenti altri utenti connessi al database, l'istruzione ALTER DATABASE verrà bloccata fino a quando tutti gli utenti non si disconnettono dal database specificato.If SINGLE_USER is specified and there are other users connected to the database the ALTER DATABASE statement will be blocked until all users disconnect from the specified database. Per eseguire l'override di questo comportamento, vedere WITH <terminazione > clausola.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.The database remains in SINGLE_USER mode even if the user that set the option logs off. A questo punto, un altro utente (ma solo uno) potrà connettersi al database.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 Sys. Databases vista del catalogo.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. Controllare per i processi attivi asincrono delle statistiche eseguendo una query di Sys.dm exec_background_job_queue vista a gestione dinamica.Check for active asynchronous statistics jobs by querying the sys.dm_exec_background_job_queue dynamic management view.

    Se sono presenti processi attivi, consentire i processi completare 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
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 does not 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.

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.The status of this option can be determined 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> ::=

Si applica a: SQL Server 2014SQL Server 2014 tramite SQL Server 2017SQL Server 2017, Database SQLSQL Database.Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017, Database SQLSQL Database.

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 Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

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 cannot 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 cannot 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.The status of this option can be determined 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 cannot 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. Per i database model e tempdb questo valore non può essere modificato.The value cannot 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.The status of this option can be determined by examining the is_trustworthy_on column in the sys.databases catalog view.

DEFAULT_FULLTEXT_LANGUAGEDEFAULT_FULLTEXT_LANGUAGE
Si applica a: SQL Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 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 Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 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 di nomi di lingua accettabili e alias, vedere Sys. syslanguages ( Transact-SQL ) .For a list of acceptable language names and aliases, see sys.syslanguages (Transact-SQL). 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 Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 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 Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 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 Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 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 Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 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
L'accesso non transazionale completo a dati FILESTREAM in tabelle FileTable è abilitato.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 Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

Vedere ALTER DATABASE SET HADR ( Transact-SQL ) .See ALTER DATABASE SET HADR (Transact-SQL).

<mixed_page_allocation_option >:: =<mixed_page_allocation_option> ::=

Si applica a: SQL ServerSQL Server (da SQL Server 2016SQL Server 2016 a versione corrente).Applies to: SQL ServerSQL Server ( SQL Server 2016SQL Server 2016 through current version). Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

MIXED_PAGE_ALLOCATION {OFF | ON} controlli se il database può creare pagine iniziali utilizzando un extent misto per le prime otto pagine di indice o una tabella.MIXED_PAGE_ALLOCATION { OFF | ON } controls whether the database can create initial pages using a mixed extent for the first eight pages of a table or index.

OFFOFF
Il database crea sempre pagine iniziali di extent uniformi.The database always creates initial pages using uniform extents. Si tratta del valore predefinito.This is the default value.

ONON
Il database è possibile creare pagine iniziali di extent misti.The database can create initial pages using mixed extents.

Questa impostazione è impostata su ON per tutti i database di sistema.This setting is ON for all system databases. tempdb è il solo sistema database che supporta 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.

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 2016SQL Server 2016 alla versione corrente), Database SQLSQL Database.Applies to: SQL ServerSQL Server ( SQL Server 2016SQL Server 2016 through current version), Database SQLSQL Database.

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

ONON
Abilita l'archivio query.Enables the query store.

OFFOFF
Disabilita l'archivio query.Disables the query store. Si tratta del valore predefinito.This is the default value.

CLEARCLEAR
Rimuovere il contenuto dell'archivio query.Remove the contents of the query store.

OPERATION_MODEOPERATION_MODE
Descrive la modalità di funzionamento dell'archivio di query.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 di query, ma non vengono aggiunte nuove informazioni.In READ_ONLY mode, information can be read from the query store, but new information is not 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 dell'archivio di query.Describes the data retention policy of the query store. STALE_QUERY_THRESHOLD_DAYS determina il numero di giorni per cui vengono mantenute le informazioni per una query in archivio query.STALE_QUERY_THRESHOLD_DAYS determines the number of days for which the information for a query is retained 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 di 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 di 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 di 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
Controlla se i pulizia verrà attivata automaticamente quando la quantità totale di dati sta per raggiungere le dimensioni massime:Controls whether cleanup will be automatically activated when total amount of data gets close to maximum size:

OFFOFF
Pulizia basati sulle dimensioni non verrà attivata automaticamente.Size based cleanup won’t be automatically activated.

AUTOAUTO
Viene attivata automaticamente pulizia in base alla dimensione su disco raggiunge il 90% delle max_storage_size_mb.Size based cleanup will be automatically activated when size on disk reaches 90% of max_storage_size_mb. Pulizia basati sulle dimensioni consente di rimuovere innanzitutto le query meno recenti e meno costose.Size based cleanup removes the least expensive and oldest queries first. Si ferma in corrispondenza di circa l'80% di max_storage_size_mb.It stops at approximately 80% of max_storage_size_mb. Questo è il 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:

Tutte le tutte le query vengono acquisite.ALL All queries are captured. Questo è il valore di configurazione predefinito.This is the default configuration value. Questo è il valore di configurazione predefinito per SQL Server 2016SQL Server 2016This is the default configuration value for SQL Server 2016SQL Server 2016

AUTO acquisizione query pertinenti in base esecuzione conteggio e consumo delle risorse.AUTO Capture relevant queries based on execution count and resource consumption. Questo è il valore di configurazione predefinito per Database SQLSQL DatabaseThis is the default configuration value for Database SQLSQL Database

NON arrestare l'acquisizione di nuove query.NONE Stop capturing new queries. Archivio query continuerà a raccogliere le statistiche di compilazione e runtime per le query che già acquisite.Query Store will continue to collect compile and runtime statistics for queries that were captured already. Utilizzare questa configurazione con cautela, poiché potrebbe non essere implementato per acquisire le query importante.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. Valore predefinito è 200.Default is 200.

<recovery_option >:: =<recovery_option> ::=

Si applica a: SQL ServerSQL Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

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 (SQL Server).For more information, see Recovery Models (SQL Server).

BULK_LOGGEDBULK_LOGGED
Consente il recupero in caso di errori dei supporti, cercando di ottenere i migliori risultati a livello di prestazioni e di utilizzo della quantità minima di spazio del log per determinate operazioni su larga scala o bulk.Provides recovery after media failure by combining the best performance and least amount of log-space use for certain large-scale or bulk operations. Per informazioni sulle operazioni che supportano la registrazione minima, vedere Log delle transazioni ( SQL Server ) .For information about what operations can be minimally logged, see The Transaction Log (SQL Server). 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 (SQL Server).For more information, see Recovery Models (SQL Server).

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

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 del valore predefinito è determinato dal modello di recupero di modello database.The default recovery model is determined by the recovery model of the model database. Per ulteriori informazioni sulla selezione del modello di recupero appropriato, vedere modelli di recupero ( SQL Server ) .For more information about selecting the appropriate recovery model, see Recovery Models (SQL Server).

Per determinare lo stato di questa opzione, è possibile esaminare il recovery_model e recovery_model_desc colonne nella vista del catalogo sys. Databases oppure la proprietà di ripristino di DATABASEPROPERTYEX funzione.The status of this option can be determined by examining the recovery_model and recovery_model_desc columns in the sys.databases catalog view or 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 cannot 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 danneggiamenti del database e sono in genere la conseguenza di interruzioni dell'alimentazione o di errori hardware a livello di disco, che si verificano durante la scrittura della pagina su disco.Disk I/O path errors can be the cause of database corruption problems and are generally caused by power failures or disk hardware failures that occur at the time the page is being 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 do not 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 un modello a 2 bit specifico per ogni settore da 512 byte della pagina di database da 8 kilobyte (KB) e archivia tali bit nell'intestazione della pagina di 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 scritture di pagine di database non genereranno un valore CHECKSUM o TORN_PAGE_DETECTION.Database page writes will not 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 2005SQL Server 2005 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 2005SQL Server 2005 or a later version, the PAGE_VERIFY value (NONE or TORN_PAGE_DETECTION) is retained. È 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 cannot be modified. In SQL Server 2008SQL Server 2008 e versioni successive, il valore predefinito per il database tempdb è CHECKSUM per 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 cannot 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 ulteriori informazioni sulle opzioni di ripristino, vedere argomenti RESTORE ( Transact-SQL ) .For more information about restore options, see RESTORE Arguments (Transact-SQL). 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 viene completata correttamente durante uno di questi tentativi, viene scritto un messaggio nel log degli errori e l'esecuzione del comando che ha attivato la lettura continua.If the read is successful in any one of the retry attempts, a message will be written to the error log and 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.If the retry attempts fail, the command will fail with error message 824.

    Per ulteriori informazioni sui checksum, pagine incomplete, tentativi di lettura, messaggi di errore 823 e 824 e altre SQL ServerSQL Server funzionalità di controllo dei / o, vedere questo sito Web Microsoft.For more information about checksum, torn page, read-retry, error messages 823 and 824, and other SQL ServerSQL Server I/O auditing features, see this Microsoft Web site.

    L'impostazione corrente di questa opzione può essere determinata esaminando la colonna page_verify_option nella Sys. Databases vista del catalogo oppure la proprietà IsTornPageDetectionEnabled il DATABASEPROPERTYEX(funzione).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 Server 2016SQL Server 2016 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2016SQL Server 2016 through SQL Server 2017SQL Server 2017. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

Abilita o disabilita l'estensione 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 = <nome_server >, {CREDENZIALE = <db_scoped_credential_name > | FEDERATED_SERVICE_ACCOUNT = ON | OFF}) | OFF A ONREMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name> , { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } )| OFF ON
Abilita estensione Database per il database.Enables Stretch Database for the database. Per altre informazioni, inclusi prerequisiti aggiuntivi, vedere abilitare estensione Database per un database.For more info, including additional prerequisites, see Enable Stretch Database for a database.

Autorizzazioni.Permissions. Abilitazione di estensione Database per un database o una tabella richiede autorizzazioni db_owner.Enabling Stretch Database for a database or a table requires db_owner permissions. Abilitazione di estensione Database per un database richiede anche le autorizzazioni CONTROL DATABASE.Enabling Stretch Database for a database also requires CONTROL DATABASE permissions.

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

CREDENZIALE = <db_scoped_credential_name >CREDENTIAL = <db_scoped_credential_name>
Specifica il database con ambito di credenziali che l'istanza di SQL ServerSQL Server utilizza 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 che sia le credenziali prima di eseguire questo comando.Make sure the credential exists before you run this command. Per altre informazioni, vedere CREATE DATABASE SCOPED CREDENTIAL ( Transact-SQL ) .For more info, see CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).

FEDERATED_SERVICE_ACCOUNT = ON | DISATTIVATOFEDERATED_SERVICE_ACCOUNT = ON | OFF
È possibile utilizzare un account del servizio federato per SQL Server locale per comunicare con il server Azure remoto quando vengono soddisfatte 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 remoto di Azure.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 ON, è anche possibile specificare l'argomento CREDENTIAL.If you specify ON, you can't also specify the CREDENTIAL argument. Se si specifica OFF, è necessario fornire l'argomento CREDENTIAL.If you specify OFF, you have to provide the CREDENTIAL argument.

    OFFOFF
    Disabilita l'estensione 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.

    È solo possibile disabilitare estensione Database per un database dopo il database non contiene tutte le tabelle che sono abilitate per estensione 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 estensione Database, si interrompe la migrazione dei dati e i risultati della query non includono più risultati dalle tabelle remote.After you disable Stretch Database, data migration stops and query results no longer include results from remote tables.

    La disabilitazione dell'estensione non rimuove il database remoto.Disabling Stretch does not remove the remote database. Se si vuole eliminare il database remoto, è necessario eliminarlo tramite il portale di gestione di Azure.If you want to delete the remote database, you have to drop it by using the Azure management portal.

<service_broker_option >:: =<service_broker_option> ::=

Si applica a: SQL ServerSQL Server.Applies to: SQL ServerSQL Server. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

Controlla le operazioni seguenti Service BrokerService Broker opzioni: Abilita o disabilita il recapito dei messaggi, imposta un nuovo Service BrokerService Broker identificatore o imposta le priorità di conversazione su ON o 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 retains the existing Service BrokerService Broker identifier. Service Broker non può essere abilitato se il database è l'entità in una configurazione di mirroring del database.Service broker cannot 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 retains 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. Poiché il database viene considerato una nuova istanza di Service Broker, tutte le conversazioni esistenti nel database vengono rimosse immediatamente senza generare messaggi di fine dialogo.Because the database is considered to be a new service broker, 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. Questo consente di mantenere esistente Service BrokerService Broker identificatore per il database.This 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. Ciò consente alle applicazioni di eseguire operazioni regolari di pulizia per le conversazioni esistenti.This enables applications to perform 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 a tutte le conversazioni fosse assegnato 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 in attesa di essere inviati al momento dell'esecuzione di ALTER DATABASE, la nuova impostazione non viene applicata fino a quando alcuni messaggi del dialogo non sono stati inviati.Dialogs that have messages waiting to be sent when ALTER DATABASE is run will not pick up the new setting until some of the messages for the dialog have been 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 il Sys. Databases vista del catalogo.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> ::=

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 relativa allo 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 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 della transazione SNAPSHOT.Transactions cannot 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 does not 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 restituisca rapidamente, utilizzare Sys.dm tran_active_snapshot_database_transactions per determinare se sono presenti transazioni a esecuzione prolungata.If the ALTER DATABASE statement does not 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. Il Sys. Databases vista del catalogo 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 verrà sei secondi e ripetere 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 modificare lo stato di ALLOW_SNAPSHOT_ISOLATION se il database è OFFLINE.You cannot 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 retained 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 modifica l'impostazione per il database tempdb, questa viene mantenuta per ogni arresto e riavvio dell'istanza del Motore di databaseDatabase Engine.If you change the setting for tempdb, the setting is retained every time the instance of the Motore di databaseDatabase Engine is stopped and restarted. 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. 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 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 possono accedere a uno snapshot dei dati corrispondente allo stato dei dati all'avvio dell'istruzione.When a transaction runs at the read committed isolation level, all statements see a snapshot of data as it exists at the start of the statement.

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 does not have to be in single-user mode. Non è possibile modificare lo stato di questa opzione quando il database è OFFLINE.You cannot 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 retained when the database is later set to READ_WRITE.

Non è possibile impostare READ_COMMITTED_SNAPSHOT su ON per i database di sistema master, tempdb e msdb.READ_COMMITTED_SNAPSHOT cannot 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 READ_COMMITTED_SNAPSHOT viene successivamente modificata usando ALTER DATABASE, nella tabella dati 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 Server 2014SQL Server 2014 tramite SQL Server 2017SQL Server 2017, Database SQLSQL Database.Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017, Database SQLSQL Database.

ONON
Quando il livello di isolamento della transazione è impostato su un qualsiasi livello di isolamento inferiore a SNAPSHOT, ad esempio READ COMMITTED o READ UNCOMMITTED, tutte le operazioni interpretate di Transact-SQLTransact-SQL nelle tabelle con ottimizzazione per la memoria vengono eseguite tramite l'isolamento SNAPSHOT.When the transaction isolation level is set to any isolation level lower than SNAPSHOT (for example, READ COMMITTED or READ UNCOMMITTED), all interpreted Transact-SQLTransact-SQL operations on memory-optimized tables are performed under SNAPSHOT isolation. Questa operazione viene eseguita indipendentemente dal fatto che il livello di isolamento della transazione sia impostato in modo esplicito a livello di sessione o venga usata in modo implicito che l'impostazione predefinita.This is done regardless of 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 con ottimizzazione per la memoria.Does not elevate the transaction isolation level for interpreted Transact-SQLTransact-SQL operations on memory-optimized tables.

Non è possibile modificare lo stato di MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT se il database è OFFLINE.You cannot change the state of MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT if the database is OFFLINE.

Per impostazione predefinita, l'opzione è OFF.The option is OFF, by default.

L'impostazione corrente di questa opzione può essere determinata esaminando il is_memory_optimized_elevate_to_snapshot_on colonna il Sys. Databases ( Transact-SQL ) vista del catalogo.The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on column in the sys.databases (Transact-SQL) catalog view.

<sql_option si >:: =<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, di una colonna o tipo CLR definito dall'utente per il supporto di valori null non esplicitamente definito in istruzioni 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 is not 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 regardless of this setting.

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 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 ANSI_NULL_DEFAULT to ON for the session when connecting to an instance of SQL ServerSQL Server. Per ulteriori informazioni, vedere SET ANSI_NULL_DFLT_ON ( Transact-SQL ) .For more information, see SET ANSI_NULL_DFLT_ON (Transact-SQL).

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.databases oppure la proprietà IsAnsiNullDefault della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_ansi_null_default_on column in the sys.databases catalog view or 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 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 ANSI_NULLS to ON for the session when connecting to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_NULLS (Transact-SQL).For more information, see SET ANSI_NULLS (Transact-SQL).

È 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.databases oppure la proprietà IsAnsiNullsEnabled della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_ansi_nulls_on column in the sys.databases catalog view or the IsAnsiNullsEnabled property of the DATABASEPROPERTYEX function.

ANSI_PADDING { ON | OFF }ANSI_PADDING { ON | OFF }
ONON
Le stringhe vengono riempite fino alla stessa lunghezza prima della conversione o inserimento di un varchar o nvarchar tipo di dati.Strings are padded to the same length before conversion or inserting to a varchar or nvarchar data type.

Gli spazi finali in valori di tipo carattere inseriti varchar o nvarchar colonne e gli zeri finali in valori binari inseriti in varbinary colonne non vengono rimossi. .Trailing blanks in character values inserted into varchar or nvarchar columns and trailing zeros in binary values inserted into varbinary columns are not trimmed. I valori non vengono riempiti con caratteri nulli per l'intera lunghezza della colonna.Values are not padded to the length of the column.

OFFOFF
Per gli spazi vuoti finali varchar o nvarchar e gli zeri per varbinary vengono tagliati.Trailing blanks for varchar or nvarchar and zeros for varbinary are trimmed.

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.

Char(n) e binario(n) le colonne che ammettono valori null vengono riempite fino alla lunghezza della colonna quando l'opzione ANSI_PADDING è impostata. su ON, ma gli spazi vuoti e gli zeri finali vengono eliminati se ANSI_PADDING è OFF.char(n) and binary(n) columns that allow for nulls are padded to the length of the column when ANSI_PADDING is set to ON, but trailing blanks and zeros are trimmed when ANSI_PADDING is OFF. Char(n) e binario(n) le colonne che non consentono valori null vengono sempre riempite fino alla lunghezza della colonna.char(n) and binary(n) columns that do not 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 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 ANSI_PADDING to ON for the session when connecting to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_PADDING (Transact-SQL).For more information, see SET ANSI_PADDING (Transact-SQL).

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

ANSI_WARNINGS { ON | OFF }ANSI_WARNINGS { ON | OFF }
ONON
Vengono generati errori o avvisi se si verificano condizioni quali la divisione per zero oppure in presenza di valori Null nelle funzioni di aggregazione.Errors or warnings are issued when conditions such as divide-by-zero occur or 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 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 ANSI_WARNINGS to ON for the session when connecting to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET ANSI_WARNINGS (Transact-SQL).For more information, see SET ANSI_WARNINGS (Transact-SQL).

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_ansi_warnings_on nella vista del catalogo sys.databases oppure la proprietà IsAnsiWarningsEnabled della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_ansi_warnings_on column in the sys.databases catalog view or 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
Visualizza un messaggio di avviso quando si verifica uno di questi errori, ma l'elaborazione della query, del batch o della transazione prosegue come se non si fosse verificato alcun errore.A warning message is displayed when one of these errors occurs, but the query, batch, or transaction continues to process as if no error occurred.

È 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.databases oppure la proprietà IsArithmeticAbortEnabled della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_arithabort_on column in the sys.databases catalog view or the IsArithmeticAbortEnabled property of the DATABASEPROPERTYEX function.

COMPATIBILITY_LEVEL { 90 | 100 | 110 | 120}COMPATIBILITY_LEVEL { 90 | 100 | 110 | 120}
Per altre informazioni, vedere Livello di compatibilità ALTER DATABASE (Transact-SQL).For more information, see ALTER DATABASE Compatibility Level (Transact-SQL).

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 (Transact-SQL).For more information, see SET CONCAT_NULL_YIELDS_NULL (Transact-SQL).

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

QUOTED_IDENTIFIER { ON | OFF }QUOTED_IDENTIFIER { ON | OFF }
ONON
È possibile usare le virgolette doppie per delimitare gli identificatori delimitati.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 do not have to follow the Transact-SQLTransact-SQL rules for identifiers. Possono essere parole chiave e includere caratteri normalmente non consentiti negli identificatori Transact-SQLTransact-SQL.They can be keywords and can include characters not generally 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 essere conformi a tutte le regole di Transact-SQLTransact-SQL per gli identificatori.Identifiers cannot 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, regardless of the setting of QUOTED_IDENTIFIER. Per altre informazioni, vedere Identificatori del database.For more information, see Database Identifiers.

Durante la creazione di una tabella, l'opzione QUOTED IDENTIFIER viene sempre archiviata con l'impostazione ON nei metadati della tabella, anche se l'opzione viene impostata su OFF quando si crea la tabella.When a table is created, the QUOTED IDENTIFIER option is always stored as ON in the metadata of the table, 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 su ON 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 QUOTED_IDENTIFIER to ON when connecting to an instance of SQL ServerSQL Server. Per altre informazioni, vedere SET QUOTED_IDENTIFIER (Transact-SQL).For more information, see SET QUOTED_IDENTIFIER (Transact-SQL).

Per determinare lo stato di questa opzione, è possibile esaminare la colonna is_quoted_identifier_on nella vista del catalogo sys.databases oppure la proprietà IsQuotedIdentifiersEnabled della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_quoted_identifier_on column in the sys.databases catalog view or 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
In seguito alla perdita di precisione non viene generato alcun messaggio di errore e il risultato viene arrotondato alla precisione della colonna o della variabile in cui viene archiviato.Losses of precision do not 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.databases oppure la proprietà IsNumericRoundAbortEnabled della funzione DATABASEPROPERTYEX.The status of this option can be determined by examining the is_numeric_roundabort_on column in the sys.databases catalog view or 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
Solo l'attivazione ricorsiva diretta di trigger AFTER non è consentita.Only direct recursive firing of AFTER triggers is not allowed. Per disabilitare anche la ricorsione indiretta dei trigger AFTER, impostare l'opzione nested triggers server 0 utilizzando sp_configure.To also disable indirect recursion of AFTER triggers, set the nested triggers server option to 0 by using sp_configure.

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.The status of this option can be determined 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 Server 2012SQL Server 2012 tramite SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017. Non è disponibile in Database SQLSQL Database.Not available in Database SQLSQL Database.

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 2016SQL Server 2016 il valore predefinito per i nuovi database è 1 minuto, a indicare database utilizzerà checkpoint indiretti.Beginning with SQL Server 2016SQL Server 2016 the default value for new databases is 1 minute, which indicates database will use indirect checkpoints. Per le versioni precedenti il valore predefinito è 0, che indica che il database utilizzerà 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. MicrosoftMicrosoftsi consiglia di 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_timetarget_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 ulteriori informazioni sui checkpoint indiretti, vedere checkpoint di Database ( SQL Server ) .For more information about indirect checkpoints, see Database Checkpoints (SQL Server).

CON <terminazione >:: =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 is 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 WITH <terminazione > clausola.Not all database options use the WITH <termination> clause. Per ulteriori informazioni, vedere la tabella in "impostazione delle opzioni nella sezione"Osservazioni"di questo argomento.For more information, see the table under "Setting Options of the "Remarks" section of this topic.

ROLLBACK AFTER intero [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 avrà esito negativo se non è possibile completare immediatamente la modifica dell'opzione o dello stato del database richiesta senza attendere il commit o il rollback delle transazioni.Specifies that if the requested database state or option change cannot complete immediately without waiting for transactions to commit or roll back on their own, the request will fail.

Impostazione delle opzioni Setting Options

Per recuperare le impostazioni correnti per le opzioni di database, utilizzare il Sys. Databases vista del catalogo 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 modificare i valori predefiniti di qualsiasi opzione di database per tutti i nuovi database, modificare l'opzione di database appropriata nel database model.To change the default values for any one of the database options for all newly created databases, change the appropriate database option in the model database.

Non tutte le opzioni di database usano WITH <terminazione > clausola 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 Utilizzare WITH <terminazione > clausolaCan 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 si ><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 ><db_encryption> 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 2016SQL Server 2016 alla versione corrente), Database SQLSQL Database.Applies to: SQL ServerSQL Server ( SQL Server 2016SQL Server 2016 through current version), Database SQLSQL Database.

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_ONLY   
    , CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 5 )  
    , DATA_FLUSH_INTERVAL_SECONDS = 2000   
    , MAX_STORAGE_SIZE_MB = 10   
    , INTERVAL_LENGTH_MINUTES = 10   
    );  

Vedere ancheSee Also

Livello di compatibilità ALTER DATABASE (Transact-SQL) ALTER DATABASE Compatibility Level (Transact-SQL)
Mirroring del database di ALTER DATABASE (Transact-SQL) ALTER DATABASE Database Mirroring (Transact-SQL)
ALTER DATABASE SET HADR (Transact-SQL) ALTER DATABASE SET HADR (Transact-SQL)
Statistiche Statistics
CREATE DATABASE (SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
Abilitare e disabilitare il rilevamento delle modifiche (SQL Server) Enable and Disable Change Tracking (SQL Server)
DATABASEPROPERTYEX (Transact-SQL) DATABASEPROPERTYEX (Transact-SQL)
DROP DATABASE (Transact-SQL) DROP DATABASE (Transact-SQL)
SET TRANSACTION ISOLATION LEVEL ( Transact-SQL ) SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
sys.databases (Transact-SQL) sys.databases (Transact-SQL)
data_spaces ( Transact-SQL )sys.data_spaces (Transact-SQL)