sp_dboption (T-SQL)

Displays or changes database options. sp_dboption should not be used on either the master or tempdb databases.

Syntax

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

Arguments
[@dbname =] 'database'
Is the name of the database in which to set the specified option. database is sysname, with a default of NULL.
[@optname =] 'option_name'
Is the name of the option to set. It is not necessary to enter the complete option name. Microsoft® SQL Server™ recognizes any part of the name that is unique. Enclose the option name with quotation marks if it includes embedded blanks or is a keyword. If this parameter is omitted, sp_dboption lists the options that are on. option_name is varchar(35), with a default of NULL.
[@optvalue =] 'value'
Is the new setting for option_name. If this parameter is omitted, sp_dboption returns current setting. value can be true or false or on or off. value is varchar(10), with a default of NULL.
Return Code Values

0 (success) or 1 (failure)

Result Sets

If no parameters are supplied, this is the result set:

Column name Data type Description
Settable database options nvarchar(35) All of the settable database options

If database is the only supplied parameter, this is the result set:

Column name Data type Description
The following options
are set:
nvarchar(35) The options that are set for the database

If option_name is supplied, this is the result set:

Column name Data type Description
OptionName nvarchar(35) Name of the option
CurrentSetting char(3) Whether the option is on or off

If value is supplied, sp_dboption does not return a result set.

Remarks

These are the options set by sp_dboption. For more information about each option, see Setting Database Options.

Option Description
auto create statistics When true, any missing statistics needed by a query for optimization are automatically built during optimization. For more information, see CREATE STATISTICS.
auto update statistics When true, any out of date statistics needed by a query for optimization are automatically built during optimization. For  more information, see UPDATE STATISTICS.
autoclose When true, the database is shutdown cleanly and its resources are freed after the last user exits.
autoshrink When true, the database files are candidates for automatic periodic shrinking.
ANSI null default When true, CREATE TABLE follows the SQL-92 rules to determine if a column allows null values.
ANSI nulls When true, all comparisons to a null value evaluate to UNKNOWN. When false, comparisons of non-UNICODE values to a null value evaluate to TRUE if both values are NULL.
ANSI warnings When true, errors or warnings are issued when conditions such as “divide by zero” occur.
concat null yields null When true, if either operand in a concatenation operation is NULL, the result is NULL.
cursor close on commit When true, any cursors that are open when a transaction is committed or rolled back are closed. When false, such cursors remain open when a transaction is committed. When false, rolling back a transaction closes any cursors except those defined as INSENSITIVE or STATIC.
dbo use only When true, only the database owner can use the database.
default to local cursor When true, cursor declarations default to LOCAL.
merge publish When true, the database can be published for a merge replication.
offline When true, the database is offline.
published When true, the database can be published for replication.
quoted identifier When true, double quotation marks can be used to enclose delimited identifiers.
read only When true, users can only read data in the database, not modify it. The database cannot be in use when a new value for the read only option is specified. The master database is the exception, and only the system administrator can use master while the read only option is being set.
recursive triggers When true, enables recursive firing of triggers.
select into/bulkcopy When true, the SELECT INTO statement and fast bulk copies are allowed.
single user When true, only one user at a time can access the database.
subscribed When true, the database can be subscribed for publication.
torn page detection When true, incomplete pages can be detected.
trunc. log on chkpt. When true, a checkpoint truncates the inactive part of the log when the database is in log truncate mode. This is the only option you can set for the master database.

The database owner or system administrator can set or turn off particular database options for all new databases by executing sp_dboption on the model database.

After sp_dboption has been executed, a checkpoint executes in the database for which the option was changed. This causes the change to take effect immediately.

sp_dboption changes settings for a database. Use sp_configure to change server-level settings, and the SET statement to change settings that affect only the current session.


Important If the autoclose, autoshrink, dbo use only, read only, single user, select into/bulkcopy, or torn page detection settings have changed for the database since the last full database backup, these settings must be reset before restoring the database.


Permissions

Execute permissions to display only the list of options (using sp_dboption with no parameters) default to all users. Execute permissions to change an option (using sp_dboption with parameters) default to members of the sysadmin fixed server role or the db_owner fixed database role for the database for which the option is to be changed.

Examples
A. Set a database to read-only

This example makes the pubs database read-only.

USE master

EXEC sp_dboption 'pubs', 'read only', 'TRUE'

  

Here is the result set:

CHECKPOINTing database that was changed.

  

B. Turn off an option

This example makes the pubs database writable again.

USE master

EXEC sp_dboption 'pubs', 'read only', 'FALSE'

  

Here is the result set:

CHECKPOINTing database that was changed.

  

C. Take a database offline

This example takes the sales database offline if there are no users accessing the database.

USE master

EXEC sp_dboption 'sales', 'offline', 'TRUE'

  

Here is the result set:

CHECKPOINTing database that was changed.

  

See Also
SET System Stored Procedures
sp_configure  

  


(c) 1988-98 Microsoft Corporation. All Rights Reserved.