SQL Server'da uyumluluk modunu 100'den 110'a değiştirmenin etkileri


17

MydatabaseSQL Server 2008 R2'de oluşturulmuş bir veritabanım var . SQL Server 2012'ye geçtim.

Yüzdelik değeri hesaplamak için aşağıdaki sorguyu yürütmeye çalışıyordum

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

ama bunu belirten bir hata alıyorum

Msg 10762, Seviye 15, Durum 1, Satır 1
Geçerli uyumluluk modunda PERCENTILE_CONT işlevine izin verilmiyor. Yalnızca 110 veya daha yüksek modda kullanılabilir.

  1. Uyumluluk modunu 110 olarak değiştirebilir miyim?
  2. Uyumluluk modunu 100'den 110'a değiştirmenin sonuçları nelerdir?

Lütfen tavsiye


OMFG! "SQL Server 2014 sorgu planları oluşturan ve optimize bileşen için önemli iyileştirmeler içerir." Ama `Bundan son 3 yıldır hiç faydalanamıyorum çünkü compatibility_levelhala 100 yaşındayım. Harika!
Simon_Weaver

Yanıtlar:


9

Aşağıdaki bağlantıya bir göz atın:

ALTER DATABASE Uyumluluk Seviyesi

Aşağı kaydırın ve "Daha Düşük Uyumluluk Düzeyleri ile Seviye 110 Arasındaki Farklar" bölümünü göreceksiniz ve bu öğelerden herhangi birinin sizi etkileyip etkilemeyeceğini belirleyeceksiniz. Değilse, seviyeyi 110 olarak değiştirin.


3
Saatler sürecekti. Bunu sizin için şimdi yapan bir araç var: Microsoft Veri Taşıma Yardımcısı
MGOwen

5

Ayrıca DB'nizde uyumluluk düzeyini değiştirirken sorunlara neden olabilecek herhangi bir şeyi tanımlamanıza yardımcı olacak olan Yükseltme Danışmanı da vardır (temelde @steoleary'nin önerdiği şeyi yapmanın yarı otomatik bir yolu, bu da bir şeyleri kaybetme şansınızı azaltır).


Veri Taşıma Yardımcısı artık Görünüşe göre Yükseltme Danışmanı'nın yerini aldı.
MGOwen

Evet, 2012 içindi, bu yüzden adını ve / veya işlevselliğini değiştirdiklerine şaşırmadım. Ben nadiren bu gün DBs ile yapmak için çok şey var gibi DBs oldukça uzun bir süre için döngü dışında oldum - hatta en son sürümü ne emin değilim!
Steve Pettifer

4

Microsoft Veri Taşıma Yardımcısı , yükseltmeyi engelleyebilecek veya zorlaştırabilecek sorunları hızlı ve kolay bir şekilde bulmanıza yardımcı olur.

Herhangi bir sorun bulamazsa (veya buluyorsa ve bunları ele aldıysanız), bu komutları tek tek çalıştırarak yükseltebilirsiniz:

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.