ผลกระทบของการเปลี่ยนโหมดความเข้ากันได้ใน SQL Server จาก 100 เป็น 110


17

ฉันมีฐานข้อมูลที่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 หรือสูงกว่าเท่านั้น

  1. ฉันสามารถเปลี่ยนโหมดความเข้ากันได้เป็น 110 หรือไม่
  2. ความหมายของการเปลี่ยนโหมดความเข้ากันได้จาก 100 เป็น 110 คืออะไร

กรุณาแนะนำ


OMFG! "SQL Server 2014 มีการปรับปรุงอย่างมากสำหรับส่วนประกอบที่สร้างและปรับแผนแบบสอบถามให้เหมาะสม" แต่ `ฉันไม่ได้รับประโยชน์จากสิ่งนั้นมาตลอด 3 ปีที่ผ่านมาเพราะฉันcompatibility_levelยังอายุ 100 ปีวิเศษมาก!
Simon_Weaver

คำตอบ:


9

ดูลิงค์ต่อไปนี้:

แก้ไขฐานข้อมูลระดับความเข้ากันได้

เลื่อนลงและคุณจะเห็นส่วน "ความแตกต่างระหว่างระดับความเข้ากันได้ที่ต่ำกว่าและระดับ 110" และระบุว่ารายการใด ๆ เหล่านี้จะส่งผลกระทบต่อคุณหรือไม่ ถ้าไม่เช่นนั้นให้เปลี่ยนระดับเป็น 110


3
นั่นจะใช้เวลาหลายชั่วโมง มีเครื่องมือที่ทำสิ่งนี้เพื่อคุณในตอนนี้: Microsoft Data Migration Assistant
MGOwen

5

นอกจากนี้ยังมีโปรแกรมช่วยแนะนำการปรับรุ่นซึ่งจะช่วยให้คุณระบุสิ่งต่าง ๆ ในฐานข้อมูลของคุณซึ่งอาจทำให้เกิดปัญหาเมื่อเปลี่ยนระดับความเข้ากันได้ (โดยทั่วไปจะเป็นวิธีกึ่งอัตโนมัติในการทำสิ่งที่


ตอนนี้ผู้ช่วยการย้ายข้อมูลได้แทนที่ Upgrade Advisor อย่างชัดเจนแล้ว
MGOwen

ใช่นี่เป็นปี 2012 ดังนั้นจึงไม่แปลกใจที่พวกเขาเปลี่ยนชื่อและ / หรือการทำงาน ฉันไม่ได้ห่วงกับการอัปเกรด DBs มาระยะหนึ่งแล้วเนื่องจากไม่ค่อยมีอะไรเกี่ยวข้องกับ DBs มากนักในวันนี้ - ไม่แน่ใจว่าเวอร์ชั่นล่าสุดคืออะไร!
Steve Pettifer

4

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.