คำถามติดแท็ก compatibility-level

2
พฤติกรรมที่แท้จริงของความเข้ากันได้ระดับ 80 คืออะไร?
มีใครให้ข้อมูลเชิงลึกที่ดีกว่าเกี่ยวกับคุณสมบัติโหมดความเข้ากันได้หรือไม่ มันมีพฤติกรรมแตกต่างจากที่ฉันคาดไว้ เท่าที่ฉันเข้าใจโหมดความเข้ากันได้มันเป็นเรื่องเกี่ยวกับความพร้อมใช้งานและการสนับสนุนโครงสร้างภาษาบางอย่างระหว่าง SQL Server รุ่นต่างๆ ไม่ส่งผลกระทบต่อการทำงานภายในของรุ่นโปรแกรมฐานข้อมูล มันจะพยายามป้องกันการใช้คุณสมบัติและโครงสร้างที่ยังไม่พร้อมใช้งานในรุ่นก่อนหน้า ฉันเพิ่งสร้างฐานข้อมูลใหม่ด้วยระดับ 80 ที่เข้ากันได้ใน SQL Server 2008 R2 สร้างตารางที่มีคอลัมน์ int หนึ่งคอลัมน์และสร้างด้วยแถวไม่กี่แถว จากนั้นดำเนินการคำสั่งเลือกด้วยrow_number()ฟังก์ชั่น ความคิดของฉันคือเนื่องจากฟังก์ชั่น row_number เพิ่งเปิดตัวในปี 2005 สิ่งนี้จะทำให้เกิดข้อผิดพลาดในโหมด 80 ที่เข้ากันได้ แต่ด้วยความประหลาดใจของฉันนี้ทำงานได้ดี จากนั้นแน่นอนว่ากฎการเข้ากันได้จะได้รับการประเมินก็ต่อเมื่อคุณ 'บันทึกบางอย่าง' ดังนั้นฉันจึงสร้าง proc ที่เก็บไว้สำหรับคำสั่ง row_number ของฉัน การสร้าง proc ที่จัดเก็บเป็นไปด้วยดีและฉันสามารถดำเนินการได้อย่างสมบูรณ์และได้ผลลัพธ์ มีใครช่วยให้ฉันเข้าใจการทำงานของโหมดความเข้ากันได้ดีขึ้นหรือไม่ ความเข้าใจของฉันมีข้อบกพร่องอย่างชัดเจน

6
ทำให้ SqlClient เป็นค่าเริ่มต้นเป็น ARITHABORT ON
สิ่งแรกแรก: ผมใช้ MS SQL Server 2008 ด้วยฐานข้อมูลที่ระดับความเข้ากันได้ 80 System.Data.SqlClient.SqlConnectionและการเชื่อมต่อกับสุทธิของ สำหรับเหตุผลด้านประสิทธิภาพฉันได้สร้างมุมมองที่จัดทำดัชนีแล้ว ARITHABORT ONเป็นผลให้การปรับปรุงตารางการอ้างอิงในมุมมองความจำเป็นที่จะต้องทำด้วย อย่างไรก็ตามผู้สร้างโปรไฟล์แสดงว่า SqlClient เชื่อมต่ออยู่ARITHABORT OFFดังนั้นการอัพเดทตารางเหล่านั้นจึงล้มเหลว มีการตั้งค่ากลางเพื่อให้ SqlClient ใช้งานARITHABORT ONหรือไม่ สิ่งที่ดีที่สุดที่ฉันสามารถค้นหาได้คือการดำเนินการด้วยตนเองทุกครั้งที่มีการเปิดการเชื่อมต่อ แต่การอัปเดตฐานรหัสที่มีอยู่เพื่อทำสิ่งนี้จะเป็นงานที่ค่อนข้างใหญ่ดังนั้นฉันจึงกระตือรือร้นที่จะหาวิธีที่ดีกว่า

3
ผลกระทบของการเปลี่ยนโหมดความเข้ากันได้ใน SQL Server จาก 100 เป็น 110
ฉันมีฐานข้อมูลที่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 …

2
กู้คืนฐานข้อมูลจากไฟล์สำรองของรุ่น / รุ่นที่แตกต่างกัน
ฉันอ่านว่าเป็นไปได้ที่จะกู้คืนฐานข้อมูลใน SQL Server ตราบใดที่คุณกำลังกู้คืนจากรุ่นเก่าเป็นรุ่นที่ใหม่กว่าด้วยเหตุผลด้านความเข้ากันได้ย้อนหลัง มีใครรู้บ้างไหมถ้าคุณสามารถกู้คืนฐานข้อมูลจากไฟล์ * .bak สำหรับ SQL Server รุ่นต่าง ๆ ได้ เรากำลังย้ายฐานข้อมูลที่มีขนาดใหญ่มากผ่านทาง FTP ซึ่งจะใช้เวลาสองสามวันดังนั้นเราควรทำเช่นนี้เพียงครั้งเดียว หากไม่มีใครตอบกลับตามเวลาที่เราถ่ายโอนฐานข้อมูลผ่านทาง FTP เราจะลองใช้งานและดูว่ามันใช้งานได้โดยการทดสอบและตอบคำถามของเราเองหรือไม่ ด้านล่างนี้เป็นแบบสอบถามเพื่อรับรายละเอียดรุ่นของ SQL Server อยู่ในรูปแบบproductversion {major revision}.{minor revision}.{release revision}.{build number}ในกรณีของฉัน{release revision}ค่ามี5500สำหรับแหล่งที่มาและ5512เป้าหมาย นั่นดูไม่เป็นไร อย่างไรก็ตามความeditionแตกต่าง ค้นหา: SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY('productlevel'), SERVERPROPERTY('edition') ฐานข้อมูลแหล่งที่มา: 10.0.5500.0 SP3 Developer Edition (64-bit) ฐานข้อมูลเป้าหมาย: 10.0.5512.0 SP3 Enterprise Edition (64-bit)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.