SQL Server 2008 R2でデータベースMydatabase
を作成しました。 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
しかし、私はそれを述べるエラーが出ます
メッセージ10762、レベル15、状態1、行1
現在の互換モードでは、PERCENTILE_CONT関数は使用できません。 110モード以上でのみ使用できます。
アドバイスを下さい
次のリンクをご覧ください。
下にスクロールすると、「下位互換性レベルとレベル110の違い」というセクションが表示され、これらの項目のいずれかが影響を与えるかどうかがわかります。そうでない場合は、レベルを110に変更します。
pgrade Advisor もあります。これは、互換性レベルを変更するときに問題を引き起こす可能性があるDB内の何かを識別するのに役立ちます(基本的に、@ steolearyが提案することを行う半自動化された方法で、あなたは何かが不足しています)。
Microsoft Data Migration Assistant を使用すると、アップグレードを妨げたり複雑にしたりする可能性のある問題をすばやく簡単に見つけることができます。
問題が見つからない場合(または問題があり、対処済みの場合)、これらのコマンドを1つずつ実行するだけでアップグレードできます。
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