Impostazione delle opzioni di database

Data aggiornamento: 5 dicembre 2005

Per ogni database è possibile impostare numerose opzioni che ne determinano le caratteristiche. Queste opzioni sono specifiche di ogni database e non hanno effetto su altri database. Alla creazione del database le opzioni vengono impostate sui valori predefiniti ed è possibile modificarle utilizzando la clausola SET dell'istruzione ALTER DATABASE. È inoltre possibile utilizzare SQL Server Management Studio per impostare la maggior parte di queste opzioni.

[!NOTA] Le impostazioni valide per l'intero server vengono configurate utilizzando la stored procedure di sistema sp_configure oppure SQL Server Management Studio. Per ulteriori informazioni, vedere Impostazione delle opzioni di configurazione del server. Le impostazioni a livello di connessione vengono specificate utilizzando le istruzioni SET. Per ulteriori informazioni, vedere Opzioni SET.

Per modificare i valori predefiniti delle opzioni di database per i nuovi database, modificare l'appropriata opzione di database nel database model. Ad esempio, se si desidera che il valore predefinito dell'opzione di database AUTO_SHRINK sia impostato su ON per tutti i nuovi database creati, impostare l'opzione AUTO_SHRINK su ON nel database model.

Dopo aver impostato un'opzione di database, viene creato automaticamente un checkpoint che applica immediatamente la modifica. Per ulteriori informazioni, vedere CHECKPOINT (Transact-SQL).

Opzioni di database

Nelle tabelle seguenti sono elencate le opzioni di database impostate alla creazione di un database e i valori predefiniti corrispondenti. Per una descrizione completa delle opzioni, vedere ALTER DATABASE (Transact-SQL).

Opzioni per le funzioni automatiche

Controllano alcune funzionalità automatiche.

Opzione Descrizione Valore predefinito

AUTO_CLOSE

Se è impostata su ON, il database viene chiuso normalmente e le risorse corrispondenti vengono liberate dopo la disconnessione dell'ultimo utente. Il database viene riaperto automaticamente quando si tenta di utilizzarlo nuovamente.

Se è impostata su OFF, dopo la disconnessione dell'ultimo utente il database rimane aperto.

ON per tutti i database quando si utilizza Microsoft SQL Server 2000 Desktop Engine o SQL Server 2005 Express Edition e OFF per tutte le altre edizioni, indipendentemente dal sistema operativo.

AUTO_CREATE_STATISTICS

Se è impostata su ON, vengono create automaticamente statistiche nelle colonne utilizzate in un predicato.

Se è impostata su OFF, le statistiche non vengono create automaticamente, ma è possibile crearle manualmente.

ON

AUTO_UPDATE_STATISTICS

Se è impostata su ON, le statistiche mancanti necessarie per l'ottimizzazione di una query vengono create automaticamente durante la fase di ottimizzazione.

Se è impostata su OFF, è necessario creare le statistiche manualmente. Per ulteriori informazioni, vedere Statistiche dell'indice.

ON

AUTO_SHRINK

Se è impostata su ON, i file di database vengono compattati periodicamente, se necessario. È possibile compattare automaticamente sia i file di dati e che i file di log tramite SQL Server. AUTO_SHRINK riduce le dimensioni del log delle transazioni solo se per il database è impostato il modello di recupero con registrazione minima oppure se viene eseguito il backup del log.

Se è impostata su OFF, i file di database non vengono compattati automaticamente durante le verifiche della presenza di spazio inutilizzato che vengono eseguite periodicamente.

OFF

Opzioni di cursore

Controllano il funzionamento e l'ambito dei cursori.

Opzione Descrizione Valore predefinito

CURSOR_CLOSE_ON_COMMIT

Se è impostata su ON, quando viene eseguito il commit o il rollback di una transazione tutti i cursori aperti vengono chiusi.

Se è impostata su OFF, quando viene eseguito il commit i cursori rimangono aperti. Quando si esegue il rollback di una transazione, tutti i cursori vengono chiusi, tranne i cursori INSENSITIVE o STATIC.

OFF

CURSOR_DEFAULT

Quando è specificata l'opzione LOCAL e un cursore non è stato definito come GLOBAL durante la creazione, l'ambito del cursore è locale rispetto al batch, alla stored procedure o al trigger in cui è stato creato. Il nome del cursore è valido soltanto in questo ambito.

Quando è specificata l'opzione GLOBAL e un cursore non è stato definito come LOCAL in fase di creazione, l'ambito del cursore è globale rispetto alla connessione. È possibile fare riferimento al nome del cursore in qualsiasi stored procedure o batch eseguiti tramite la connessione.

GLOBAL

Opzioni relative alla disponibilità del database

Consentono di impostare il database come in linea o non in linea, di specificare quali utenti possono connettersi al database e di impostare la modalità di sola lettura per il database.

Opzione Descrizione Valore predefinito

OFFLINE | ONLINE | EMERGENCY

Se è impostata su OFFLINE, il database viene chiuso normalmente e contrassegnato come non in linea.

Se è impostata su ONLINE, il database è aperto e disponibile per l'utilizzo.

Se si specifica EMERGENCY, il database viene impostato come READ_ONLY, la registrazione è disattivata e l'accesso è consentito ai soli membri del ruolo predefinito del server sysadmin.

ONLINE

READ_ONLY | READ_WRITE

Se si specifica READ_ONLY, gli utenti possono leggere i dati dal database, ma non modificarli.

Se si specifica READ_WRITE, il database è disponibile per le operazioni di lettura e scrittura.

READ_WRITE

SINGLE_USER | RESTRICTED_USER | MULTI_USER

Se si specifica SINGLE_USER, la connessione al database è consentita a un solo utente alla volta. Tutte le altre connessioni utente vengono interrotte.

Se si specifica RESTRICTED_USER, la connessione al database è consentita solo ai membri del ruolo predefinito del database db_owner e dei ruoli predefiniti del server dbcreator e sysadmin, ma senza limiti di numero.

Quando si specifica MULTI_USER, la connessione al database è consentita a tutti gli utenti che dispongono delle autorizzazioni appropriate.

MULTI_USER

Opzioni di ottimizzazione per la correlazione tra date

Controllano l'opzione date_correlation_optimization.

Opzione Descrizione Valore predefinito

DATE_CORRELATION_OPTIMIZATION

Se è impostata su ON, SQL Server mantiene le statistiche di correlazione fra le eventuali coppie di tabelle nel database collegate da un vincolo FOREIGN KEY e contenenti colonne datetime.

Se si specifica OFF, le statistiche di correlazione non vengono mantenute.

OFF

Opzioni di accesso esterno

Controllano se il database sia accessibile da risorse esterne, come oggetti di un altro database.

Opzione Descrizione Valore predefinito

DB_CHAINING

Se è impostata su ON, il database può essere l'origine o la destinazione di una catena di proprietà tra database.

Se è impostata su OFF, il database non può partecipare al concatenamento della proprietà tra database.

OFF

TRUSTWORTHY

Se è impostata su ON, i moduli di database (ad esempio funzioni definite dall'utente o stored procedure) che utilizzano un contesto di rappresentazione possono accedere a risorse esterne al database.

Se è impostata su OFF, in un contesto di rappresentazione l'accesso dei moduli a risorse esterne al database non è consentito.

Quando il database viene collegato, l'opzione TRUSTWORTHY viene impostata su OFF.

OFF

Opzione di parametrizzazione

Controllano l'opzione di parametrizzazione.

Opzione Descrizione Valore predefinito

PARAMETERIZATION

Se è impostata su SIMPLE, le query vengono parametrizzate in base al comportamento predefinito del database

Se si specifica FORCED, SQL Server parametrizza tutte le query del database.

SIMPLE

Opzioni di recupero

Controllano il modello di recupero del database.

Opzione Descrizione Valore predefinito

RECOVERY

Se si specifica FULL, nel caso di errori dei supporti il recupero con registrazione completa viene eseguito mediante i backup del log delle transazioni. Se un file di dati risulta danneggiato, il recupero dei supporti consente di ripristinare tutte le transazioni di cui è stato eseguito il commit.

Se si specifica BULK_LOGGED, il recupero dopo l'errore dei supporti viene eseguito combinando le migliori prestazioni e il minore utilizzo di spazio di log per operazioni su larga scala o di massa.

Se si specifica SIMPLE, viene implementata una strategia di backup semplice che utilizza una quantità minima dello spazio di log.

FULL

PAGE_VERIFY

Se si specifica CHECKSUM, il Motore di database calcola un checksum sul contenuto dell'intera pagina e, quando la pagina viene scritta su disco, memorizza il valore nell'intestazione di pagina. Quando la pagina viene letta dal disco, il checksum viene ricalcolato e confrontato al valore memorizzato nell'intestazione di pagina.

Se si specifica TORN_PAGE_DETECTION, quando la pagina viene scritta su disco, per ogni settore di 512 byte nella pagina di database di 8 kilobyte uno specifico bit viene salvato e memorizzato nell'intestazione di pagina del database. Quando la pagina viene letta dal disco, i bit utilizzati per rilevare se la pagina è incompleta memorizzati nell'intestazione di pagina vengono confrontati alle informazioni sul settore di pagina correnti.

Se si specifica NONE, le scritture di pagine del database non generano un valore di CHECKSUM o TORN_PAGE_DETECTION. SQL Server non eseguirà la verifica di un checksum o di una pagina incompleta durante una lettura anche se nell'intestazione di pagina è presente un valore di CHECKSUM o TORN_PAGE_DETECTION.

CHECKSUM

Opzioni relative a Service Broker

Controllano le opzioni relative a Service Broker.

Opzione Descrizione Valore predefinito

ENABLE_BROKER | DISABLE_BROKER | NEW_BROKER | ERROR_BROKER_CONVERSATIONS

Se si specifica ENABLE_BROKER, Service Broker viene attivato per il database specificato.

Se si specifica DISABLE_BROKER, Service Broker viene disattivato per il database specificato.

Se si specifica NEW_BROKER, il database riceve un nuovo identificatore di Service Broker.

Se si specifica ERROR_BROKER_CONVERSATIONS, quando il database viene collegato le conversazioni nel database ricevono un messaggio di errore.

ENABLE_BROKER

Opzioni di isolamento dello snapshot

Determinano il livello di isolamento delle transazioni.

Opzione Descrizione Valore predefinito

ALLOW_SNAPSHOT_ISOLATION

Se è impostata su ON, le transazioni possono specificare il livello di isolamento SNAPSHOT. Quando una transazione viene eseguita al livello di isolamento SNAPSHOT, tutte le istruzioni operano su uno snapshot dei dati esistenti al momento dell'avvio della transazione.

Se è impostata su OFF, le transazioni non possono specificare il livello di isolamento SNAPSHOT.

OFF

READ_COMMITTED_SNAPSHOT

Se è impostata su ON, le transazioni che specificano il livello di isolamento READ_COMMITTED utilizzano il controllo delle versioni delle righe e non il blocco delle righe. Quando una transazione viene eseguita al livello di isolamento READ_COMMITTED, tutte le istruzioni operano su uno snapshot dei dati esistenti al momento dell'avvio della transazione.

Se è impostata su OFF, le transazioni che specificano il livello di isolamento READ_COMMITTED utilizzano il blocco.

Quando si imposta l'opzione READ_COMMITTED_SNAPSHOT, nel database è consentita solo la connessione che esegue il comando ALTER DATABASE. Nel database non devono essere presenti altre connessioni aperte fino al completamento del comando ALTER DATABASE. Non è necessario che il database sia in modalità utente singolo.

OFF

Opzioni SQL

Controllano le opzioni di conformità ANSI.

Opzione Descrizione Valore predefinito

ANSI_NULL_DEFAULT

Determina il valore predefinito, NULL oppure NOT NULL, di una colonna, un tipo di dati alias, o un tipo CLR definito dall'utente per i quali il supporto di valori Null non è definito esplicitamente nelle istruzioni CREATE TABLE o ALTER TABLE.

Se è impostata su ON, il valore predefinito è NULL.

Se è impostata su OFF, il valore predefinito è NOT NULL.

OFF

ANSI_NULLS

Se è impostata su ON, tutti i confronti con un valore Null restituiscono UNKNOWN.

Se è impostata su OFF, i confronti di valori non UNICODE con un valore Null restituiscono TRUE se entrambi i valori sono NULL.

OFF

ANSI_PADDING

Se è impostata su ON, gli spazi vuoti finali in valori di tipo carattere inseriti in colonne varchar o nvarchar e gli zeri finali in valori binari inseriti in colonne varbinary non vengono rimossi. I valori non vengono riempiti per l'intera lunghezza della colonna.

Se è impostata su OFF, gli spazi vuoti finali (per varchar o nvarchar) e gli zeri (per varbinary) vengono rimossi. Questa impostazione influisce solo sulla definizione di nuove colonne.

Le colonne di tipo char e binary che supportano valori Null vengono riempite fino alla lunghezza della colonna se l'opzione ANSI_PADDING è impostata su ON, ma gli spazi vuoti finali e gli zeri vengono eliminati se ANSI_PADDING è impostata su OFF. Le colonne char e binary che non consentono valori Null vengono sempre riempite fino alla lunghezza della colonna.

OFF

ANSI_WARNINGS

Se è impostata su ON, vengono generati errori o avvisi se si verificano condizioni quali divisioni per zero oppure se nelle funzioni di aggregazione sono presenti valori Null.

Se è impostata su OFF, se si verificano condizioni quali divisioni per zero non vengono generati avvisi e vengono restituiti valori Null.

OFF

ARITHABORT

Se è impostata su ON, la query viene terminata quando si verifica un errore di divisione per zero o di overflow.

Se è impostata su OFF e si verifica uno di questi errori, viene visualizzato un messaggio di avviso, ma l'elaborazione della query, del batch o della transazione continua come se non fossero stati generati errori.

OFF

CONCAT_NULL_YIELDS_NULL

Se è impostata su ON, il risultato di un'operazione di concatenamento è NULL quando uno degli operandi è NULL.

Se è impostata su OFF, il valore Null viene considerato come una stringa di caratteri vuota.

OFF

QUOTED_IDENTIFIER

Se è impostata su ON, è possibile racchiudere gli identificatori delimitati tra virgolette.

Se è impostata su OFF, gli identificatori non possono essere racchiusi tra virgolette e devono essere conformi a tutte le regole di Transact-SQL per gli identificatori.

OFF

NUMERIC_ROUNDABORT

Se è impostata su ON, quando in un'espressione si verifica una perdita di precisione viene generato un errore.

Se è impostata su OFF, in seguito alla perdita di precisione non viene visualizzato alcun messaggio di errore e il risultato viene arrotondato alla precisione della colonna o della variabile in cui viene archiviato.

OFF

RECURSIVE_TRIGGERS

Se è impostata su ON, è consentita l'attivazione ricorsiva di trigger AFTER.

Se è impostata su OFF, non è consentita l'attivazione ricorsiva diretta di trigger AFTER.

OFF

Per modificare le opzioni di database

Vedere anche

Concetti

Opzioni SET che hanno effetto sui risultati
Opzione user options

Altre risorse

ALTER DATABASE (Transact-SQL)
DATABASEPROPERTYEX (Transact-SQL)
sp_configure (Transact-SQL)
sys.databases (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Contenuto modificato:
  • Eliminazione dell'opzione SUPPLEMENTAL_LOGGING.
  • Aggiunta dell'opzione ANSI_PADDING.