Sql-Server-2012

將 SQL Server 中的兼容模式從 100 更改為 110 的含義

  • April 16, 2020

我有一個Mydatabase在 SQL Server 2008 R2 中創建的數據庫。我已經升級到 SQL Server 2012。

我試圖執行下面的查詢來計算百分位數

select Distinct [KEY],PERCENTILE_CONT(0.25)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q1,PERCENTILE_CONT(0.50)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q2,
PERCENTILE_CONT(0.75)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q3,
PERCENTILE_CONT(1)  within group(order by EachPrice)
OVER(Partition By [KEY]) As Q4
from Mydatabase

但我收到一條錯誤消息,指出

Msg 10762, Level 15, State 1, Line 1

目前兼容模式下不允許使用 PERCENTILE_CONT 函式。僅允許在 110 或更高模式下使用。

  1. 我可以將兼容模式更改為 110 嗎?
  2. 將兼容模式從 100 更改為 110 有何影響?

請指教

看看下面的連結:

ALTER DATABASE 兼容級別

向下滾動,您將看到“較低兼容級別與級別 110 之間的差異”部分,並確定這些項目是否會影響您。如果沒有,那麼只需將級別更改為 110。

Microsoft數據遷移助手可幫助您快速輕鬆地找到可能阻止升級或使升級複雜化的任何問題。

如果它沒有發現任何問題(或者如果它發現了,並且您已經解決了這些問題),您可以通過執行以下命令進行升級,一次一個:

USE master
go
ALTER DATABASE [yourdatabasesname]  SET SINGLE_USER     WITH ROLLBACK IMMEDIATE
go
ALTER DATABASE [yourdatabasesname]  SET COMPATIBILITY_LEVEL = 110    -- 130=SQL Server 2016, 120=2014, 110=2012
go
ALTER DATABASE [yourdatabasesname]  SET MULTI_USER
go

引用自:https://dba.stackexchange.com/questions/60449