T-SQL筆記42_ALTER DATABASE 兼容性级别

 
The query uses non-ANSI outer join operators ("*=" or "=*"). To run this query without modification, please set the compatibility level for current database to 80, using the SET COMPATIBILITY_LEVEL option of ALTER DATABASE. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN). In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes.


在資料庫中若用比較早期SQL2000版本可能會看到有人使用

* = 和 = * 
分別代表在sql server2000中left join 和 right join

兼容性: < 90 適用2005以前
現在sql2005和2008默認是不支持的,但可以
把數據庫的兼容級別設置為2000的80,也可以使用。

根據微軟官網API文件
可以去設置向下相容的等級

ALTER DATABASE 兼容性级别
https://learn.microsoft.com/zh-cn/previous-versions/sql/sql-server-2014/bb510680(v=sql.120)

語法:

ALTER DATABASE database_name 
SET COMPATIBILITY_LEVEL = { 90 | 100 | 110 | 120 }

database_name
要修改的數據庫的名稱。

COMPATIBILITY_LEVEL {80 | 90 | 100 | 110 | 120 }
要使數據庫與之兼容的SQL Server 版本。該值必須為下列值之一:

說明

適用於

80

SQL Server 2000

SQL Server 2008 至SQL Server 2008 R2

90

SQL Server 2005

SQL Server 2008 至SQL Server 2012

100

SQL Server 2008 和SQL Server 2008 R2

SQL Server 2008 至SQL Server 2014

110

SQL Server 2012

SQL Server 2012 至SQL Server 2014

120

SQL Server 2014

SQL Server 2014 至SQL Server 2014




若要查看當前資料庫用捨麼版本


以及相應的COMPATIBILITY_LEVEL
可以透過

select @@version
select compatibility_level,* from sys.databases



留言

這個網誌中的熱門文章

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

經得起原始碼資安弱點掃描的程式設計習慣培養(三)_7.Cross Site Scripting(XSS)_Stored XSS_Reflected XSS All Clients

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題