อาการ
สมมติว่าคุณได้สอบถามตาราง tempdb.sys.allocation_units ใน Microsoft SQL Server ๒๐๑๒ เมื่อคุณใช้คำใบ้ NOLOCK ในแบบสอบถามหรือคิวรีอยู่ภายใต้ระดับการแยกธุรกรรม UNCOMMITED อ่านคุณจะได้รับข้อความแสดงข้อผิดพลาด๖๐๘เป็นระยะๆต่อไปนี้:
ข้อผิดพลาด: ความรุนแรง๖๐๘:16 สถานะ: 1 ไม่พบรายการแค็ตตาล็อกสำหรับพาร์ติชัน <ID> ในฐานข้อมูล <ชื่อฐานข้อมูล> Metadata ไม่สอดคล้องกัน เรียกใช้ DBCC CHECKDB เพื่อตรวจสอบความเสียหายของ metadata
หมายเหตุ คำสั่ง DBCC CHECKDB ไม่แสดงเครื่องหมายของความเสียหายของฐานข้อมูลใดๆ
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากการอ่านที่สกปรกบน metadata ที่เก่ากว่า
การแก้ไข
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตที่สะสมของ SQL Server ครั้งแรก
การอัปเดตที่สะสม4สำหรับ SQL Server ๒๐๑๒ SP2 /en-us/help/3007556
การอัปเดตที่สะสม13สำหรับ SQL Server ๒๐๑๒ SP1 /en-us/help/3002044
การอัปเดตที่สะสมใหม่แต่ละรายการสำหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการอัปเดตที่สะสมก่อนหน้านี้ ตรวจสอบการอัปเดตที่สะสมล่าสุดสำหรับ SQL Server:
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"