/*語法ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 } 參數database_name 要修改的數據庫的名稱。COMPATIBILITY_LEVEL { 80 | 90 | 100 }要使數據庫與之兼容的 SQL Server 版本。該值必須為下列值之一:80 = SQL Server 2000 90 = SQL Server 2005 100 = SQL Server 2008 備注對于所有 SQL Server 2008 安裝,默認的兼容級別都為 100。除非 model 數據庫有更低的兼容級別,否則 SQL Server 2008 中創建的數據庫會設置為該級別。將數據庫從 SQL Server 的任何早期版本升級到 SQL Server 2008 時,如果數據庫的兼容級別不在 80 以下,則該數據庫將保留其現有的兼容級別。升級兼容級別低于 80 的數據庫會將數據庫的兼容級別設置為 80。這既適用于系統數據庫,也適用于用戶數據庫。使用 ALTER DATABASE 可更改數據庫的兼容級別。若要查看數據庫的當前兼容級別,請查詢 sys.databases 目錄視圖中的 compatibility_level 列。利用兼容級別獲得向后兼容兼容級別只影響指定數據庫的行為,而不影響整個服務器的行為。兼容級別只實現與 SQL Server 的早期版本保持部分向后兼容。通過將兼容級別用作臨時性的遷移輔助工具,可解決相關兼容級別設置控制的行為之間存在的版本差異問題。如果現有 SQL Server 應用程序受到 SQL Server 2008 中行為差異的影響,請對該應用程序進行轉換,使之能正常運行。然后使用 ALTER DATABASE 將兼容級別更改為 100。數據庫的新兼容性設置將在該數據庫下次成為當前數據庫(無論是在登錄時作為默認數據庫還是在 USE 語句中指定)時生效。最佳實踐如果在用戶連接到數據庫時更改兼容級別,可能會使活動查詢產生不正確的結果集。例如,如果在編寫查詢計劃時兼容級別發生更改,則編寫后的計劃可能同時基于舊的和新的兼容級別,從而造成計劃不正確,并可能導致結果不準確。此外,如果將計劃放在計劃緩存中供后續的查詢重用,則問題可能更加復雜。為了避免查詢結果不準確,建議您使用以下過程來更改數據庫的兼容級別:1. 通過使用 ALTER DATABASE SET SINGLE_USER,將數據庫設置為單用戶訪問模式。2. 更改數據庫的兼容級別。3. 通過使用 ALTER DATABASE SET MULTI_USER,將數據庫設為多用戶訪問模式。 有關設置數據庫訪問模式的詳細信息,請參閱 ALTER DATABASE (Transact-SQL)。*/--獲取數據庫兼容級別SELECT name ,compatibility_level ,recovery_model_desc FROM sys.databases WITH(NOLOCK)--將用戶設置為單用戶訪問模式ALTER DATABASE test SET SINGLE_USER--修改數據庫的兼容級別ALTER DATABASE TESTSET COMPATIBILITY_LEVEL = 90--orEXEC sp_dbcmptlevel TEST, 90;GO--將用戶設置為多用戶訪問模式ALTER DATABASE test SET MULTI_USER/*語法sp_dbcmptlevel [ [ @dbname = ] name ] [ , [ @new_cmptlevel = ] version ] 參數[ @dbname = ] name要為其更改兼容級別的數據庫的名稱。數據庫名稱必須符合標識符的規則。name 的數據類型為 sysname,默認值為 NULL。[ @new_cmptlevel = ] version數據庫要與之兼容的 SQL Server 的版本。version 的數據類型為 tinyint,默認值為 NULL。該值必須為下列值之一:80 = SQL Server 2000 90 = SQL Server 2005 100 = SQL Server 2008 返回代碼值0(成功)或 1(失敗)結果集如果未指定任何參數或未指定 name 參數,則 sp_dbcmptlevel 將返回錯誤。如果指定 name 但未指定 version,則 數據庫引擎將返回一條消息,顯示指定數據庫的當前兼容級別。備注有關兼容級別的說明,請參閱 ALTER DATABASE 兼容級別 (Transact-SQL)。權限只有數據庫所有者、sysadmin 固定服務器角色和 db_owner 固定數據庫角色的成員(前提是您要更改當前數據庫)才能執行此過程。*/
本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請
點擊舉報。