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
그러나 나는 그것을 나타내는 오류가 발생합니다.
메시지 10762, 수준 15, 상태 1, 줄 1
PERCENTILE_CONT 기능은 현재 호환성 모드에서 사용할 수 없습니다. 110 모드 이상에서만 허용됩니다.
- 호환성 모드를 110으로 변경할 수 있습니까?
- 호환성 모드를 100에서 110으로 변경하면 어떤 의미가 있습니까?
조언하십시오
답변
다음 링크를 살펴보십시오.
아래로 스크롤하면 “낮은 호환성 수준과 수준 110의 차이점”섹션이 표시되며 이러한 항목 중 어느 것이 귀하에게 영향을 미치는지 확인하십시오. 그렇지 않으면 레벨을 110으로 변경하십시오.
답변
또한 호환성 수준을 변경할 때 문제를 일으킬 수있는 DB의 모든 사항을 식별하는 데 도움이되는 업그레이드 관리자 도 있습니다 (기본적으로 @steoleary가 제안한 작업을 수행하는 반자동 방식으로 누락 가능성을 줄입니다).
답변
Microsoft Data Migration Assistant를 사용 하면 업그레이드를 방해하거나 복잡하게 만드는 문제를 빠르고 쉽게 찾을 수 있습니다.
문제가없는 경우 (또는 문제가 해결 된 경우) 한 번에 하나씩 다음 명령을 실행하여 간단히 업그레이드 할 수 있습니다.
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