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