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
留言
張貼留言