Implikasi mengubah mode kompatibilitas dalam SQL Server dari 100 menjadi 110


16

Saya memiliki database yang Mydatabasedibuat di SQL Server 2008 R2. Saya telah meningkatkan ke SQL Server 2012.

Saya mencoba menjalankan kueri di bawah ini untuk menghitung persentil

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

tapi saya mendapatkan kesalahan yang menyatakan itu

Msg 10762, Level 15, Status 1, Baris 1
Fungsi PERCENTILE_CONT tidak diizinkan dalam mode kompatibilitas saat ini. Ini hanya diperbolehkan dalam mode 110 atau lebih tinggi.

  1. Bisakah saya mengubah mode kompatibilitas ke 110?
  2. Apa implikasi dari mengubah mode kompatibilitas dari 100 menjadi 110?

Tolong saran


OMFG! "SQL Server 2014 mencakup peningkatan substansial untuk komponen yang membuat dan mengoptimalkan rencana permintaan." Tapi `saya belum mendapat manfaat dari itu sama sekali selama 3 tahun terakhir karena saya compatibility_levelmasih di 100. Fantastis!
Simon_Weaver

Jawaban:


9

Lihat tautan berikut:

ALTER DATABASE Level Kompatibilitas

Gulir ke bawah dan Anda akan melihat bagian "Perbedaan Antara Level Kompatibilitas yang Lebih Rendah dan Level 110" dan mengidentifikasi apakah ada item yang akan mempengaruhi Anda atau tidak. Jika tidak, maka ubah levelnya menjadi 110.


3
Itu akan memakan waktu berjam-jam. Ada alat yang melakukan ini untuk Anda, sekarang: Asisten Migrasi Data
MGOwen

5

Ada juga Penasihat Peningkatan yang akan membantu Anda mengidentifikasi apa pun di DB Anda yang dapat menyebabkan masalah ketika mengubah tingkat kompatibilitas (pada dasarnya cara semi-otomatis melakukan apa yang disarankan @steoleary yang mengurangi kemungkinan Anda kehilangan sesuatu).


Asisten Migrasi Data sekarang telah menggantikan Penasihat Peningkatan, tampaknya.
MGOwen

Ya ini untuk 2012 jadi tidak heran mereka telah mengubah nama dan / atau fungsi. Saya sudah keluar dari lingkaran pada peningkatan DB untuk beberapa waktu karena saya jarang punya banyak hubungannya dengan DB hari ini - bahkan tidak yakin apa versi terbaru!
Steve Pettifer

3

Microsoft Data Migration Assistant membantu Anda dengan cepat dan mudah menemukan masalah apa pun yang dapat mencegah atau mempersulit pemutakhiran.

Jika tidak menemukan masalah (atau jika tidak, dan Anda telah mengatasinya), Anda dapat memutakhirkannya dengan menjalankan perintah ini, satu per satu:

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.