日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

修改數(shù)據(jù)庫的兼容級別

 順溜的書架 2015-12-12
復(fù)制代碼

/*

語法
ALTER DATABASE database_name 
SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }
 
參數(shù)
database_name 
要修改的數(shù)據(jù)庫的名稱。

COMPATIBILITY_LEVEL { 80 | 90 | 100 }
要使數(shù)據(jù)庫與之兼容的 SQL Server 版本。該值必須為下列值之一:
80 = SQL Server 2000 
90 = SQL Server 2005 
100 = SQL Server 2008 

備注
對于所有 SQL Server 2008 安裝,默認(rèn)的兼容級別都為 100。除非 model 數(shù)據(jù)庫有更低的兼容級別,否則 SQL Server 2008 中創(chuàng)建的數(shù)據(jù)庫會設(shè)置為該級別。將數(shù)據(jù)庫從 SQL Server 的任何早期版本升級到 SQL Server 2008 時,如果數(shù)據(jù)庫的兼容級別不在 80 以下,則該數(shù)據(jù)庫將保留其現(xiàn)有的兼容級別。升級兼容級別低于 80 的數(shù)據(jù)庫會將數(shù)據(jù)庫的兼容級別設(shè)置為 80。這既適用于系統(tǒng)數(shù)據(jù)庫,也適用于用戶數(shù)據(jù)庫。使用 ALTER DATABASE 可更改數(shù)據(jù)庫的兼容級別。若要查看數(shù)據(jù)庫的當(dāng)前兼容級別,請查詢 sys.databases 目錄視圖中的 compatibility_level 列。

利用兼容級別獲得向后兼容
兼容級別只影響指定數(shù)據(jù)庫的行為,而不影響整個服務(wù)器的行為。兼容級別只實現(xiàn)與 SQL Server 的早期版本保持部分向后兼容。通過將兼容級別用作臨時性的遷移輔助工具,可解決相關(guān)兼容級別設(shè)置控制的行為之間存在的版本差異問題。如果現(xiàn)有 SQL Server 應(yīng)用程序受到 SQL Server 2008 中行為差異的影響,請對該應(yīng)用程序進行轉(zhuǎn)換,使之能正常運行。然后使用 ALTER DATABASE 將兼容級別更改為 100。數(shù)據(jù)庫的新兼容性設(shè)置將在該數(shù)據(jù)庫下次成為當(dāng)前數(shù)據(jù)庫(無論是在登錄時作為默認(rèn)數(shù)據(jù)庫還是在 USE 語句中指定)時生效。

最佳實踐
如果在用戶連接到數(shù)據(jù)庫時更改兼容級別,可能會使活動查詢產(chǎn)生不正確的結(jié)果集。例如,如果在編寫查詢計劃時兼容級別發(fā)生更改,則編寫后的計劃可能同時基于舊的和新的兼容級別,從而造成計劃不正確,并可能導(dǎo)致結(jié)果不準(zhǔn)確。此外,如果將計劃放在計劃緩存中供后續(xù)的查詢重用,則問題可能更加復(fù)雜。為了避免查詢結(jié)果不準(zhǔn)確,建議您使用以下過程來更改數(shù)據(jù)庫的兼容級別:

1. 通過使用 ALTER DATABASE SET SINGLE_USER,將數(shù)據(jù)庫設(shè)置為單用戶訪問模式。
2. 更改數(shù)據(jù)庫的兼容級別。
3. 通過使用 ALTER DATABASE SET MULTI_USER,將數(shù)據(jù)庫設(shè)為多用戶訪問模式。
   有關(guān)設(shè)置數(shù)據(jù)庫訪問模式的詳細(xì)信息,請參閱 ALTER DATABASE (Transact-SQL)。
*/


--獲取數(shù)據(jù)庫兼容級別
SELECT name ,compatibility_level ,recovery_model_desc FROM sys.databases WITH(NOLOCK)

--將用戶設(shè)置為單用戶訪問模式
ALTER DATABASE test SET SINGLE_USER

--修改數(shù)據(jù)庫的兼容級別
ALTER DATABASE TEST
SET COMPATIBILITY_LEVEL = 90
--or
EXEC sp_dbcmptlevel TEST, 90;
GO



--將用戶設(shè)置為多用戶訪問模式
ALTER DATABASE test SET MULTI_USER

/*
語法
sp_dbcmptlevel [ [ @dbname = ] name ] 
    [ , [ @new_cmptlevel = ] version ]
 

參數(shù)
[ @dbname = ] name
要為其更改兼容級別的數(shù)據(jù)庫的名稱。數(shù)據(jù)庫名稱必須符合標(biāo)識符的規(guī)則。name 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。

[ @new_cmptlevel = ] version
數(shù)據(jù)庫要與之兼容的 SQL Server 的版本。version 的數(shù)據(jù)類型為 tinyint,默認(rèn)值為 NULL。該值必須為下列值之一:

80 = SQL Server 2000 

90 = SQL Server 2005 

100 = SQL Server 2008 

返回代碼值
0(成功)或 1(失敗)

結(jié)果集
如果未指定任何參數(shù)或未指定 name 參數(shù),則 sp_dbcmptlevel 將返回錯誤。

如果指定 name 但未指定 version,則 數(shù)據(jù)庫引擎將返回一條消息,顯示指定數(shù)據(jù)庫的當(dāng)前兼容級別。

備注
有關(guān)兼容級別的說明,請參閱 ALTER DATABASE 兼容級別 (Transact-SQL)。

權(quán)限
只有數(shù)據(jù)庫所有者、sysadmin 固定服務(wù)器角色和 db_owner 固定數(shù)據(jù)庫角色的成員(前提是您要更改當(dāng)前數(shù)據(jù)庫)才能執(zhí)行此過程。

*/

復(fù)制代碼

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多