sp_dboption (Transact-SQL)

Visualizza o modifica le opzioni di database. Non utilizzare sp_dboption per modificare opzioni nel database master o nel database tempdb.

Nota importanteImportante

Questa caratteristica verrà rimossa a partire dalla prossima versione di Microsoft SQL Server. Non utilizzare questa caratteristica in un nuovo progetto di sviluppo e modificare non appena possibile le applicazioni in cui è attualmente implementata. Utilizzare l'istruzione ALTER DATABASE in alternativa. Per modificare le opzioni di database associate alla replica (merge publish, published, subscribed), utilizzare sp_replicationdboption.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_dboption [ [ @dbname = ] 'database' ] 
    [ , [ @optname = ] 'option_name' ] 
    [ , [ @optvalue = ] 'value' ] 
[;]

Argomenti

  • [ @dbname= ] 'database'
    Nome del database in cui impostare l'opzione specificata. database è di tipo sysname e il valore predefinito è NULL.

  • [ @optname= ] 'option_name'
    Nome dell'opzione da impostare. Non è necessario immettere il nome completo dell'opzione. SQL Server riconosce qualsiasi parte del nome, purché sia univoca. Se il nome dell'opzione include spazi o corrisponde a una parola chiave, racchiuderlo tra virgolette. Se questo parametro viene omesso, sp_dboption elenca le opzioni attive. option_name è di tipo varchar(35) e il valore predefinito è NULL.

  • [ @optvalue=] 'value'
    Nuova impostazione per option_name. Se questo parametro viene omesso, sp_dboptionrestituisce l'impostazione corrente. value può essere true, false, on o off. value è di tipo varchar(10) e il valore predefinito è NULL.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Set di risultati

Nella tabella seguente viene descritto il set di risultati nel caso in cui non vengano specificati parametri.

Nome colonna

Tipo di dati

Descrizione

Settable database options

nvarchar(35)

Tutte le opzioni del database configurabili.

Nella tabella seguente viene descritto il set di risultati nel caso in cui l'unico parametro specificato sia database.

Nome colonna

Tipo di dati

Descrizione

The following options are set:

nvarchar(35)

Opzioni impostate per il database.

Nella tabella seguente viene descritto il set di risultati nel caso in cui venga specificato il parametro option_name.

Nome colonna

Tipo di dati

Descrizione

OptionName

nvarchar(35)

Nome dell'opzione.

CurrentSetting

char(3)

Indica se l'opzione è attivata o disattivata.

Se viene specificato value, la stored procedure sp_dboption non restituisce alcun set di risultati.

Osservazioni

Nella tabella seguente sono riportate le opzioni impostate da sp_dboption. Per ulteriori informazioni su ogni opzione, vedere Impostazione delle opzioni di database.

Opzione

Descrizione

auto create statistics

Se true, le statistiche mancanti necessarie per l'ottimizzazione di una query vengono create automaticamente durante la fase di ottimizzazione. Per ulteriori informazioni, vedere CREATE STATISTICS (Transact-SQL).

auto update statistics

Se true, tutte le statistiche non aggiornate necessarie per l'ottimizzazione di una query vengono create automaticamente durante la fase di ottimizzazione. Per ulteriori informazioni, vedere UPDATE STATISTICS (Transact-SQL).

autoclose

Se true, il database viene chiuso correttamente e le relative risorse vengono rilasciate dopo la disconnessione dell'ultimo utente.

autoshrink

Se true, i file del database vengono sottoposti a compattazione periodica automatica.

ANSI null default

Se true, CREATE TABLE determina se una colonna supporta i valori Null in base alle regole ISO.

ANSI nulls

Se true, tutti i confronti con un valore Null restituiscono UNKNOWN. Se false, i confronti di valori non UNICODE con un valore Null restituiscono TRUE se entrambi i valori sono NULL.

ANSI warnings

Se true, vengono restituiti messaggi di errore o avvisi quando si verificano determinati errori, ad esempio un errore di divisione per zero.

arithabort

Se true, un errore di overflow o di divisione per zero comporta l'interruzione della query o del batch. Se gli errori si verificano in una transazione, viene eseguito il rollback della transazione. Se false, viene visualizzato un avviso, ma l'esecuzione della query, del batch o della transazione prosegue come se non si fosse verificato alcun errore.

concat null yields null

Se true, se uno degli operandi di un'operazione di concatenazione è NULL, il risultato è NULL.

cursor close on commit

Se true, tutti i cursori che risultano aperti quando viene eseguito il commit o il rollback di un transazione vengono chiusi. Se false, quando viene eseguito il commit della transazione tali cursori rimangono aperti. Se false, il rollback di una transazione comporta la chiusura di tutti i cursori, a eccezione di quelli definiti come INSENSITIVE o STATIC.

dbo use only

Se true, il database può essere utilizzato solo dal proprietario.

default to local cursor

Se true, le dichiarazioni dei cursori sono LOCAL per impostazione predefinita.

merge publish

Se true, è possibile pubblicare il database per una replica di tipo merge.

numeric roundabort

Se true, viene generato un errore se si verifica una perdita di precisione in un'espressione. Se false, 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.

offline

Se true (on), il database non è in linea. Se false (off), il database è in linea.

published

Se true, è possibile pubblicare il database per la replica.

quoted identifier

Se true, è possibile racchiudere gli identificatori delimitati tra virgolette doppie.

read only

Se true, gli utenti possono solo leggere i dati nel database. Gli utenti non possono modificare i dati o gli oggetti del database. È tuttavia possibile eliminare il database stesso utilizzando l'istruzione DROP DATABASE. Quando si specifica un nuovo valore value per l'opzione read only, il database non deve essere in uso. L'unica eccezione è il database master che durante l'impostazione di read only può essere utilizzato,ma solo dall'amministratore di sistema.

recursive triggers

Se true, viene attivata la generazione ricorsiva dei trigger. Se false, viene disattivata solo la ricorsione diretta. Per disattivare anche la ricorsione indiretta, impostare l'opzione del server nested triggers su 0 tramite sp_configure.

select into/ bulkcopy

A partire da MicrosoftSQL Server 2000, se il modello di recupero del database è attualmente impostato su FULL, utilizzando l'opzione select into/bulkcopy viene reimpostato il modello di recupero BULK_LOGGED. Per modificare il modello di recupero in modo corretto, utilizzare la clausola SET RECOVERY dell'istruzione ALTER DATABASE.

single user

Se true, l'accesso al database è consentito a un solo utente alla volta.

subscribed

Se true, è possibile sottoscrivere il database per la pubblicazione.

torn page detection

Se true, è possibile rilevare le pagine incomplete.

trunc. log on chkpt.

Se true e nel database è attivata la modalità di troncamento del log, la parte inattiva del log viene troncata tramite un checkpoint. Si tratta dell'unica opzione che è possibile impostare per il database master.

Nota importanteImportante
A partire da SQL Server 2000, se si imposta l'opzione trunc. log on chkpt. su true, il modello di recupero del database viene impostato su SIMPLE. Se si imposta l'opzione su false, il modello di recupero viene impostato su FULL.

Il proprietario del database o l'amministratore di sistema può impostare o disattivare determinate opzioni del database per tutti i nuovi database eseguendo la stored procedure sp_dboption nel database model.

Al termine dell'esecuzione di sp_dboption viene eseguito un checkpoint nel database per cui è stata modificata l'opzione. In tal modo la modifica diventa attiva immediatamente.

La stored procedure sp_dboption modifica le impostazioni per un database. Utilizzare sp_configure per modificare le impostazioni a livello del server e l'istruzione SET per modificare le impostazioni relative alla sola sessione corrente.

Autorizzazioni

Per visualizzare l'elenco completo delle opzioni di database e dei relativi valori correnti è necessario essere membri del ruolo public. Per modificare il valore di un'opzione di database è necessario essere membri del ruolo predefinito del database db_owner.

Esempi

A. Impostazione di un database come database di sola lettura

Nell'esempio seguente viene impostata la modalità sola lettura per il database AdventureWorks.

USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'TRUE';

B. Disattivazione di un'opzione

Nell'esempio seguente viene disattivata la modalità sola lettura per il database AdventureWorks.

USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'FALSE';