顯示或更改數(shù)據(jù)庫選項。不能在 master 或 tempdb 數(shù)據(jù)庫上使用 sp_dboption。向后兼容性支持 sp_dboption。使用 ALTER DATABASE 設(shè)置數(shù)據(jù)庫選項。
sp_dboption [ [ @dbname = ] 'database' ]
[ , [ @optname = ] 'option_name' ]
[ , [ @optvalue = ] 'value' ]
[@dbname =] 'database'
在其中設(shè)置指定選項的數(shù)據(jù)庫的名稱。database 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。
[@optname =] 'option_name'
要設(shè)置的選項的名稱。沒有必要輸入完整的選項名稱。Microsoft® SQL Server™ 可識別名稱中任何獨有的部分。如果選項名稱包含空格或者關(guān)鍵字,請將選項名稱用引號引起來。如果省略此參數(shù),sp_dboption 將列出處于打開狀態(tài)的選項。option_name 的數(shù)據(jù)類型為 varchar(35),默認(rèn)值為 NULL。
[@value =] 'value'
option_name 的新設(shè)置。如果省略此參數(shù),sp_dboption 將返回當(dāng)前設(shè)置。value 可以是 true、false、on 或 off。value 的數(shù)據(jù)類型為 varchar(10),默認(rèn)值為 NULL。
0(成功)或 1(失?。?/P>
如果沒有提供參數(shù),則結(jié)果集如下。
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
Settable database options | nvarchar(35) | 所有可設(shè)置的數(shù)據(jù)庫選項。 |
如果 database 是唯一的參數(shù),則結(jié)果集如下。
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
The following options are set: | nvarchar(35) | 為數(shù)據(jù)庫設(shè)置的選項。 |
如果提供 option_name,則結(jié)果集如下。
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
OptionName | nvarchar(35) | 選項的名稱。 |
CurrentSetting | char(3) | 選項是處于打開狀態(tài)還是處于關(guān)閉狀態(tài)。 |
如果提供 value,sp_dboption 將不返回結(jié)果集。
下面是由 sp_dboption 設(shè)置的選項。有關(guān)每個選項的更多信息,請參見設(shè)置數(shù)據(jù)庫選項。
選項 | 描述 |
---|---|
auto create statistics | 當(dāng)為 true 時,優(yōu)化查詢所需的任何缺少的統(tǒng)計將在優(yōu)化過程中自動生成。有關(guān)更多信息,請參見 CREATE STATISTICS。 |
auto update statistics | 當(dāng)為 true 時,優(yōu)化查詢所需的任何過期的統(tǒng)計將在優(yōu)化過程中自動生成。有關(guān)更多信息,請參見 UPDATE STATISTICS。 |
autoclose | 當(dāng)為 true 時,數(shù)據(jù)庫完全關(guān)閉,其資源在最后一個用戶注銷后釋放。 |
autoshrink | 當(dāng)為 true 時,數(shù)據(jù)庫文件將成為自動周期性收縮的候選文件。 |
ANSI null default | 當(dāng)為 true 時,CREATE TABLE 遵循 SQL-92 規(guī)則以決定列是否允許為空值。 |
ANSI nulls | 當(dāng)為 true 時,所有對空值的比較都取值 UNKNOWN。當(dāng)為 false 時,如果都為 NULL,則對空值的非 UNICODE 值比較取值 TRUE。 |
ANSI warnings | 當(dāng)為 true 時,如果出現(xiàn)諸如"被零除"情況,則發(fā)出錯誤或警告消息。 |
arithabort | 當(dāng)為 true 時,溢出或被零除錯誤將導(dǎo)致查詢或批處理終止。如果錯誤發(fā)生在事務(wù)內(nèi),則回滾事務(wù)。當(dāng)為 false 時,將顯示警告消息,但是繼續(xù)執(zhí)行查詢、批處理或事務(wù),就像沒有出錯一樣。 |
concat null yields null | 當(dāng)為 true 時,如果串聯(lián)操作中任何一個操作數(shù)為 NULL,則結(jié)果為 NULL。 |
cursor close on commit | 當(dāng)為 true 時,將關(guān)閉提交或回滾事務(wù)時所打開的任何游標(biāo)。當(dāng)為 false 時,提交事務(wù)時這些游標(biāo)仍處于打開狀態(tài)。當(dāng)為 false 時,回滾事務(wù)時將關(guān)閉所有游標(biāo)(除定義為 INSENSITIVE 或 STATIC 的游標(biāo))。 |
dbo use only | 當(dāng)為 true 時,只有數(shù)據(jù)庫所有者可以使用數(shù)據(jù)庫。 |
default to local cursor | 當(dāng)為 true 時,游標(biāo)聲明默認(rèn)為 LOCAL。 |
merge publish | 當(dāng)為 true 時,可以為合并復(fù)制發(fā)布數(shù)據(jù)庫。 |
numeric roundabort | 當(dāng)為 true 時,如果表達(dá)式中出現(xiàn)精度損失則生成錯誤。當(dāng)為 false 時,精度損失不生成錯誤信息,并且將結(jié)果四舍五入為存儲結(jié)果的列或變量的精度。 |
offline | 當(dāng)為 true 時,數(shù)據(jù)庫將處于脫機(jī)狀態(tài)。 |
published | 當(dāng)為 true 時,可以發(fā)布數(shù)據(jù)庫用于復(fù)制目的。 |
quoted identifier | 當(dāng)為 true 時,可以將分隔標(biāo)識符包含在雙引號中。 |
read only | 當(dāng)為 true 時,用戶僅能讀取數(shù)據(jù)庫中的數(shù)據(jù)而無法對其進(jìn)行修改。若要為 read only 選項指定新的 value,則數(shù)據(jù)庫不能處于使用狀態(tài)。但 master 數(shù)據(jù)庫例外,并且當(dāng)正在設(shè)置 read only 選項時,只有系統(tǒng)管理員可以使用 master。 |
recursive triggers | 當(dāng)為 true 時,啟用觸發(fā)器遞歸調(diào)用。當(dāng)為 false 時,只防止直接遞歸。若要禁用間接遞歸,請使用 sp_configure 將 nested triggers 服務(wù)器選項設(shè)置為 0。 |
select into/bulkcopy | 當(dāng)為 true 時,允許使用 SELECT INTO 語句和快速大容量復(fù)制。 |
single user | 當(dāng)為 true 時,每次只能有一個用戶訪問數(shù)據(jù)庫。 |
subscribed | 當(dāng)為 true 時,可以為發(fā)布目的而訂閱。 |
torn page detection | 當(dāng)為 true 時,可以檢測殘缺頁。 |
trunc. log on chkpt. | 當(dāng)為 true 時,如果數(shù)據(jù)庫處于日志截斷模式,則檢查點將截斷日志中非活動的部分。只能為 master 數(shù)據(jù)庫設(shè)置此選項。 |
通過在 model 數(shù)據(jù)庫上執(zhí)行 sp_dboption,數(shù)據(jù)庫所有者或系統(tǒng)管理員可以設(shè)置或關(guān)閉所有新建數(shù)據(jù)庫的特定數(shù)據(jù)庫選項。
執(zhí)行 sp_dboption 后,將在為之更改選項的數(shù)據(jù)庫中執(zhí)行檢查點。這將使更改立即生效。
sp_dboption 更改數(shù)據(jù)庫設(shè)置。使用 sp_configure 更改服務(wù)器級別設(shè)置,使用 SET 語句更改僅影響當(dāng)前會話的設(shè)置。
顯示可能的數(shù)據(jù)庫選項列表、數(shù)據(jù)庫中當(dāng)前設(shè)置的選項列表以及選項在數(shù)據(jù)庫中的當(dāng)前值(使用 sp_dboption 和 0、1 或 2 個參數(shù))的執(zhí)行權(quán)限默認(rèn)授予所有用戶。
更改選項(使用 sp_dboption 及全部參數(shù))的執(zhí)行權(quán)限默認(rèn)授予 sysadmin、dbcreator 固定服務(wù)器角色成員以及 db_owner 固定數(shù)據(jù)庫角色成員。這些權(quán)限是不可傳遞的。
下面的示例將 pubs 數(shù)據(jù)庫設(shè)置為只讀。
USE master
EXEC sp_dboption 'pubs', 'read only', 'TRUE'
下面是結(jié)果集:
CHECKPOINTing database that was changed.
下面的示例將 pubs 數(shù)據(jù)庫重新設(shè)置為可寫。
USE master
EXEC sp_dboption 'pubs', 'read only', 'FALSE'
下面是結(jié)果集:
CHECKPOINTing database that was changed.
下面的示例使數(shù)據(jù)庫 sales 在沒有用戶訪問時進(jìn)入脫機(jī)狀態(tài)。
USE master
EXEC sp_dboption 'sales', 'offline', 'TRUE'
下面是結(jié)果集:
CHECKPOINTing database that was changed.相關(guān)文章