显示或更改数据库选项。不能在 master 或 tempdb 数据库上使用 sp_dboption。向后兼容性支持 sp_dboption。使用 ALTER DATABASE 设置数据库选项。
语法
sp_dboption [ [ @dbname = ] 'database' ]
[ , [ @optname = ] 'option_name' ]
[ , [ @optvalue = ] 'value' ]
参数
[@dbname =] 'database'
在其中设置指定选项的数据库的名称。database 的数据类型为 sysname,默认值为 NULL。
[@optname =] 'option_name'
要设置的选项的名称。没有必要输入完整的选项名称。Microsoft® SQL Server™ 可识别名称中任何独有的部分。如果选项名称包含空格或者关键字,请将选项名称用引号引起来。如果省略此参数,sp_dboption 将列出处于打开状态的选项。option_name 的数据类型为 varchar(35),默认值为 NULL。
[@value =] 'value'
option_name 的新设置。如果省略此参数,sp_dboption 将返回当前设置。value 可以是 true、false、on 或 off。value 的数据类型为 varchar(10),默认值为 NULL。
返回代码值
0(成功)或 1(失败)
结果集
如果没有提供参数,则结果集如下。
如果 database 是唯一的参数,则结果集如下。
如果提供 option_name,则结果集如下。
如果提供 value,sp_dboption 将不返回结果集。
注释
下面是由 sp_dboption 设置的选项。有关每个选项的更多信息,请参见设置数据库选项。
通过在 model 数据库上执行 sp_dboption,数据库所有者或系统管理员可以设置或关闭所有新建数据库的特定数据库选项。
执行 sp_dboption 后,将在为之更改选项的数据库中执行检查点。这将使更改立即生效。
sp_dboption 更改数据库设置。使用 sp_configure 更改服务器级别设置,使用 SET 语句更改仅影响当前会话的设置。
权限
显示可能的数据库选项列表、数据库中当前设置的选项列表以及选项在数据库中的当前值(使用 sp_dboption 和 0、1 或 2 个参数)的执行权限默认授予所有用户。
更改选项(使用 sp_dboption 及全部参数)的执行权限默认授予 sysadmin、dbcreator 固定服务器角色成员以及 db_owner 固定数据库角色成员。这些权限是不可传递的。
示例
A. 将数据库设置为只读
下面的示例将 pubs 数据库设置为只读。
USE master
EXEC sp_dboption 'pubs', 'read only', 'TRUE'
下面是结果集:
CHECKPOINTing database that was changed.
B. 关闭选项
下面的示例将 pubs 数据库重新设置为可写。
USE master
EXEC sp_dboption 'pubs', 'read only', 'FALSE'
下面是结果集:
CHECKPOINTing database that was changed.
C. 使数据库脱机
下面的示例使数据库 sales 在没有用户访问时进入脱机状态。
USE master
EXEC sp_dboption 'sales', 'offline', 'TRUE'
下面是结果集:
CHECKPOINTing database that was changed.