นำไปใช้กับ
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2017 Standard on Windows SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

อาการ

สมมติว่าคุณมีคิวรีที่ดำเนินการบางอย่างของสตริงการดำเนินการตัวอย่างเช่นการเรียงต่อกันบนคอลัมน์อักขระหรือ VARCHAR ใน Microsoft SQL Server ๒๐๑๔, ๒๐๑๖และ๒๐๑๗ พิจารณาสถานการณ์ต่อไปนี้:

  • คุณเชื่อมโยงคอลัมน์ที่มีการจัดเรียงที่แตกต่างกันที่กำหนดให้กับพวกเขา

  • การเปรียบเทียบเหล่านั้นจะเข้ากันไม่ได้กับอีกคนหนึ่ง ตัวอย่างเช่นคุณพยายามที่จะเชื่อมโยงคอลัมน์ที่รวบ Latin1_General_CI_AI กับ Latin1_General_BIN

  • ผลลัพธ์สุดท้ายของการเรียงต่อกันจะถูกกำหนดให้กับการเปรียบเทียบที่เฉพาะเจาะจง (รวมถึง "database_default") เป็นเรื่องของการแก้ปัญหาข้อขัดแย้งของการเปรียบเทียบ

ในสถานการณ์สมมตินี้ SQL Server อาจส่งกลับ assert retail ที่ระบุว่า "การเปรียบเทียบที่ไม่ถูกต้องเนื่องจากไม่มีการเปรียบเทียบ" และคุณอาจได้รับข้อความแสดงข้อผิดพลาดบางอย่างที่มีลักษณะดังต่อไปนี้:

ตำแหน่งที่ตั้ง: typinfo:LineNumber นิพจน์: false SPID: SPID รหัสกระบวนการ: ProcessID คำอธิบาย: การเปรียบเทียบที่ไม่ถูกต้องเนื่องจากไม่มีการเปรียบเทียบ

Msg ๓๖๒๔ระดับ20สถานะ1บรรทัด LineNumber การตรวจสอบการยืนยันความถูกต้องของระบบล้มเหลว ตรวจสอบบันทึกข้อผิดพลาด SQL Server สำหรับรายละเอียด โดยทั่วไปแล้วความล้มเหลวในการยืนยันจะเกิดจากข้อบกพร่องของซอฟต์แวร์หรือข้อมูลเสียหาย เมื่อต้องการตรวจสอบความเสียหายของฐานข้อมูลให้พิจารณาใช้ DBCC CHECKDB ถ้าคุณตกลงที่จะส่งการถ่ายโอนข้อมูลไปยัง Microsoft ระหว่างการตั้งค่าการถ่ายโอนข้อมูลขนาดเล็กจะถูกส่งไปยัง Microsoft การอัปเดตอาจพร้อมใช้งานจาก Microsoft ใน Service Pack ล่าสุดหรือในโปรแกรมแก้ไขด่วนจากฝ่ายสนับสนุนทางเทคนิค

Msg ๕๙๖ระดับ21สถานะ1บรรทัด LineNumber ไม่สามารถดำเนินการต่อได้เนื่องจากเซสชันอยู่ในสถานะการทำลาย

Msg 0 ระดับ20รัฐ 0, LineNumber Line

เกิดข้อผิดพลาดร้ายแรงบนคำสั่งปัจจุบัน  ผลลัพธ์ถ้ามีควรละทิ้ง

สาเหตุ

ในระหว่างขั้นตอนการเพิ่มประสิทธิภาพของคิวรี SQL Server พยายามคำนวณ cardinalities ในผลลัพธ์กลางของขั้นตอนต่างๆของแบบสอบถามตัวอย่างเช่นการเรียงต่อกัน เนื่องจากการเปรียบเทียบความขัดแย้งจะเกิดขึ้นที่จุดสิ้นสุดตัวเพิ่มประสิทธิภาพของคิวรีอาจไม่สามารถใช้งานได้และพยายามดำเนินการคำนวณการเรียงต่อกันของจำนวนที่เรียงต่อกันบนข้อมูลที่มีการเปรียบเทียบ conflicted

การแก้ไข

ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมต่อไปนี้สำหรับ SQL Server:

       การอัปเดตที่สะสม8สำหรับ SQL Server ๒๐๑๖ SP1  

       การอัปเดตที่สะสม4สำหรับ SQL Server ๒๐๑๗

       การอัปเดตที่สะสม9สำหรับ SQL Server ๒๐๑๔ SP2

การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:

การอัปเดตที่สะสมล่าสุดสำหรับ SQL Server ๒๐๑๖

การอัปเดตที่สะสมล่าสุดสำหรับ SQL Server ๒๐๑๗

การอัปเดตที่สะสมล่าสุดสำหรับ SQL Server ๒๐๑๔

สถานะ

Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"

อ้างอิง

เรียนรู้เกี่ยวกับคำ ศัพท์เฉพาะทางที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ