KB3211338 - การแก้ไข: เกิดข้อผิดพลาด Assert เมื่อคุณแทรกข้อมูลลงในตารางที่ปรับให้เหมาะสมกับหน่วยความจําที่มีดัชนี clustered ColumnStore ใน SQL Server 2016

นำไปใช้กับ
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) SQL Server 2016 Service Pack 1

อาการ

พิจารณาสถานการณ์ต่อไปนี้เมื่อคุณใช้ SQL Server 2016:

  • คุณสามารถสร้างดัชนี Clustered Columnstore บนตารางที่ปรับหน่วยความจําให้เหมาะสมที่มีคอลัมน์ของสตริงชนิดข้อมูล (ตัวอย่างเช่น nchar หรือ nvarchar)
  • ความยาวข้อมูลของคอลัมน์คือ 32 ไบต์ (ตัวอย่าง nchar(16) หรือ nvarchar(16))
  • ข้อมูลในคอลัมน์ไม่ซ้ํากันหรือเกือบไม่ซ้ํากัน และมีขนาดข้อมูล 32 ไบต์

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

หมายเหตุ

vldPageCount <= SegmentsTableRow::MaxSerializedPages

      

การแก้ปัญหา

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

หมายเหตุ หลังจากที่คุณติดตั้งการอัปเดต คุณต้องตั้งค่าการตั้งค่าสถานะการติดตาม 9968 เพื่อเปิดใช้งานการแก้ไข เมื่อต้องการตั้งค่าสถานะการติดตาม 9968 ให้ดูหัวข้อการติดตาม สถานะ (Transact-SQL) บนเว็บไซต์ Microsoft Developer Network (MSDN)

เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server

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

การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2016

สถานะ

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

การอ้างอิง

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