"ข่าวสารเกี่ยวกับ 8992 " ข้อผิดพลาดและข้อมูลเมตาที่สอดคล้องกันในแค็ตตาล็อกระบบ SQL Server

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 2787112 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

อาการ

คุณพบปัญหาต่อไปนี้ใน Microsoft SQL Server อย่างใดอย่างหนึ่ง

ปัญหาที่ 1

สมมติว่า คุณสร้างความไม่สอดคล้องในข้อมูลเมตาของระบบเมื่อคุณปรับปรุงตารางระบบในฐานข้อมูล SQL Server ด้วยตนเอง จากนั้น คุณพยายามเรียกใช้คำสั่งDBCC CHECKDBเพื่อระบุไม่สอดคล้องกันในตารางระบบเมต้าดาต้า ในสถานการณ์นี้ ข้อความแสดงข้อผิดพลาดต่อไปนี้จะถูกส่งกลับ:
ข่าวสารเกี่ยวกับ 8992 ระดับ 16 สถานะ 1 บรรทัด 1
ตรวจสอบแค็ตตาล็อกข่าวสารเกี่ยวกับ 3853 สถานะ 1: คุณลักษณะ (referenced_object_id =ออปเจ็กต์ ID>, key_index_id =ID ของดัชนี>) ของแถว (object_id =ออปเจ็กต์ ID>) ใน sys.foreign_keys ไม่มีแถวที่ตรงกัน (object_id =ออปเจ็กต์ ID>, index_id =ID ของดัชนี>) ใน sys.indexes

ปัญหาที่ 2

เมื่อคุณปรับปรุงตารางระบบใน SQL server คุณได้รับข้อความเตือนที่มีลักษณะต่อไปนี้:
คำเตือน: ID ตารางของระบบID ตาราง> มีการปรับปรุงได้โดยตรงในรหัสฐานข้อมูลรหัสฐานข้อมูล> และ coherence แคอาจไม่ได้รับการรักษาไว้ SQL Server ควรจะเริ่มต้นใหม่
ในสถานการณ์นี้ ถ้าคุณเรียกใช้การDBCC CHECKDBหรือDBCC CHECKCATALOGคำสั่ง ข้อความแจ้งเตือนพร้อมกับวันและเวลาที่แค็ตตาล็อกของระบบมีเปลี่ยนครั้งล่าสุดมีการส่งกลับ นอกจากนี้ ข้อความแจ้งเตือนต่อไปนี้ยังถูกบันทึกไว้ในแฟ้มบันทึกของ SQL Server:
คำเตือน: แค็ตตาล็อกของระบบมีการปรับปรุงได้โดยตรงในรหัสฐานข้อมูลรหัสฐานข้อมูล>, ที่ล่าสุดเวลาล็อก>.
หมายเหตุ ข้อมูลนี้ถูกเก็บไว้ในส่วนหน้าของฐานข้อมูล และยังคงมีอยู่สำหรับอายุการใช้งานของฐานข้อมูล

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจาก SQL Server ไม่สนับสนุนการปรับปรุงด้วยตนเองกับตารางระบบ ตารางระบบควรอัพเด โดย SQL Server database engine เท่านั้น

หมายเหตุ คุณสามารถดูข้อมูลในตารางของระบบ โดยใช้มุมมองของแค็ตตาล็อกระบบ

การแก้ไข

เมื่อต้องแก้ไขปัญหานี้ ใช้หนึ่งในวิธีต่อไปนี้

วิธีที่ 1

ถ้าคุณมีสำเนาสำรองของฐานข้อมูลใหม่ทั้งหมด กู้คืนฐานข้อมูลจากการสำรองข้อมูล

หมายเหตุ วิธีนี้ทำงานเฉพาะเมื่อการสำรองข้อมูลไม่มีความไม่สอดคล้องในข้อมูลเมตา

วิธีที่ 2

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

ข้อมูลเพิ่มเติม

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมช่วยแนะนำศูนย์ของระบบกฎที่ตรวจพบการปรับเปลี่ยนที่เกิดขึ้นกับแค็ตตาล็อกของระบบ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
2688307 รหัสเหตุการณ์ 17659 และ ID 3859 ของเหตุการณ์ถูกบันทึกไว้เมื่อคุณทำการปรับปรุงตารางระบบในฐานข้อมูล SQL Server
ตารางต่อไปนี้แสดงข้อผิดพลาดที่ระบุไม่สอดคล้องกันในแค็ตตาล็อกของระบบ โดยทั่วไป ข้อผิดพลาดต่อไปนี้จะถูกสร้างขึ้นพร้อมกับรหัสข้อผิดพลาด "8992"
ยุบตารางนี้ขยายตารางนี้
ข้อผิดพลาดข้อความ
3851แถวไม่ถูกต้อง (% ls) ที่พบในการ sys.%ls%ls ตารางระบบ
3852แถว (% ls) ใน sys.%ls%ls ไม่มีแถวที่ตรงกัน (% ls) ใน sys.%ls%ls
3853แอตทริบิวต์ (% ls) ของแถว (% ls) ใน sys.%ls%ls ไม่มีแถวที่ตรงกัน (% ls) ใน sys.%ls%ls
3854แอตทริบิวต์ (% ls) ของแถว (% ls) ใน sys.%ls%ls มีแถวที่ตรงกัน (% ls) ใน sys.%ls%ls ที่ไม่ถูกต้องหรือไม่
3855แอตทริบิวต์ (% ls) ที่มีอยู่ โดยไม่มีแถว (% ls) ใน sys.%ls%ls
3856แอตทริบิวต์ (% ls) ที่มีอยู่ แต่ควรไม่ใช่สำหรับแถว (% ls) ใน sys.%ls%ls
3857แอตทริบิวต์ (% ls) ที่จำเป็น แต่หายไปสำหรับแถว (% ls) ใน sys.%ls%ls
3858แอตทริบิวต์ (% ls) ของแถว (% ls) ใน sys.%ls%ls มีค่าไม่ถูกต้อง
3859คำเตือน: ระบบแค็ตตาล็อกถูกปรับปรุงได้โดยตรงในรหัสฐานข้อมูล% d ล่าสุดที่% S_DATE
ต่อไปนี้คือ ตัวอย่างของข้อความแสดงข้อผิดพลาดที่คุณอาจได้รับเมื่อคุณพบกับปัญหาเหล่านี้:
เซิร์ฟเวอร์: ข่าวสารเกี่ยวกับ 2513 ระดับ 16 สถานะ 1 บรรทัด 1
ตารางข้อผิดพลาด: ออปเจ็กต์ IDออปเจ็กต์ ID> (วัตถุ 'ออปเจ็กต์ ID>') ไม่ตรงกันระหว่าง 'SYSCOLUMNS' และ 'SYSOBJECTS'

ข่าวสารเกี่ยวกับ 3853 ระดับ 16 สถานะ 1 บรรทัด 2
แอตทริบิวต์ (object_id =ออปเจ็กต์ ID>) ของแถว (object_id =ออปเจ็กต์ ID>, index_id =ID ของดัชนี>) ใน sys.indexes ไม่มีแถวที่ตรงกัน (object_id =ออปเจ็กต์ ID>) ใน sys.objects

ข่าวสารเกี่ยวกับ 3855 ระดับ 16 สถานะ 1 บรรทัด 2
แอตทริบิวต์ (data_space_id = 1) มีอยู่ โดยไม่มีแถว (object_id =ออปเจ็กต์ ID>, index_id =ID ของดัชนี>) ใน sys.indexes

ข่าวสารเกี่ยวกับ 3852 ระดับ 16 สถานะ 1 บรรทัด 1
แถว (object_id =ออปเจ็กต์ ID>, index_id = 1) ใน sys.indexes (ชนิด = U) ไม่มีแถวที่ตรงกัน (คลาส = 0, objid =ออปเจ็กต์ ID>, indexid =ID ของดัชนี>, rowsetnum = 1) ใน sys.sysrowsetrefs

ข่าวสารเกี่ยวกับ 3852 ระดับ 16 สถานะ 1 บรรทัด 1
แถว (object_id =ออปเจ็กต์ ID>, index_id = 1) ใน sys.indexes (ชนิด = U) ไม่มีแถวที่ตรงกัน (คลาส = 0, objid =ออปเจ็กต์ ID>, indexid =ID ของดัชนี>, rowsetnum = 1) ใน sys.sysrowsetrefs

ข่าวสารเกี่ยวกับ 3853 ระดับ 16 สถานะ 1 บรรทัด 1
แอตทริบิวต์ (default_object_id =ID ออปเจ็กต์>) ของแถว (object_id =ออปเจ็กต์ ID>, column_id =ID ของคอลัมน์>) ใน sys.columns ไม่มีแถวที่ตรงกัน (object_id =ออปเจ็กต์ ID>) ใน sys.objects

ข่าวสารเกี่ยวกับ 8992 ระดับ 16 สถานะ 1 บรรทัด 1
ตรวจสอบแค็ตตาล็อกข่าวสารเกี่ยวกับ 3853 สถานะ 1: คุณลักษณะ (object_id =ออปเจ็กต์ ID>) ของแถว (object_id =ออปเจ็กต์ ID>, column_id =ID ของคอลัมน์>) ใน sys.columns ไม่มีแถวที่ตรงกัน (object_id =ออปเจ็กต์ ID>) ใน sys.objects

การดำเนินการ DBCC เสร็จสมบูรณ์ ถ้า DBCC พิมพ์ข้อความแสดงข้อผิดพลาด ติดต่อผู้ดูแลระบบของคุณ
นอกจากนี้ คุณอาจได้รับการ "ข่าวสารเกี่ยวกับ 211 " ข้อผิดพลาดที่คล้ายกับต่อไปนี้ถ้าคุณตรวจสอบความสอดคล้องของฐานข้อมูล โดยการเรียกใช้คำสั่งCHECKDBได้
ข่าวสารเกี่ยวกับ 211 ระดับ 23 รัฐ 230 บรรทัด 1
ความเสียหายของ schema ที่เป็นไปได้ เรียกใช้การ DBCC CHECKCATALOG

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

หมายเหตุถ้าคุณตรวจสอบความสอดคล้องของฐานข้อมูลที่ถูกปรับรุ่นจาก SQL Server 2000 ด้วยการเรียกใช้คำสั่งCHECKDBคำสั่งอาจส่งคืนข้อผิดพลาด "8992" รหัสและรายงานความไม่สอดคล้องในแค็ตตาล็อกระบบ ปัญหานี้เกิดขึ้นเนื่องจากคำสั่งDBCC CHECKDBใน SQL Server 2000 ไม่ได้รวมฟังก์ชันการทำงานของคำสั่งDBCC CHECKCATALOG ดังนั้น คุณจะพบปัญหาเหล่านี้ใน SQL Server 2000 ยกเว้นว่าคุณสามารถเรียกใช้คำสั่งDBCC CHECKCATALOG

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้คำสั่งDBCC CHECKDBไปเว็บไซต์ Microsoft ต่อไปนี้:
ข้อมูลทั่วไปเกี่ยวกับคำสั่ง DBCC CHECKDB

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหาที่อาจเกิดขึ้นได้เมื่อมีการปรับปรุงตารางระบบ SQL Server ด้วยตนเอง ให้คลิกหมายเลขบทความเพื่อดูบทความในฐานความรู้ของ Microsoft:

2688307 รหัสเหตุการณ์ 17659 และ ID 3859 ของเหตุการณ์ถูกบันทึกไว้เมื่อคุณทำการปรับปรุงตารางระบบในฐานข้อมูล SQL Server


คุณสมบัติ

หมายเลขบทความ (Article ID): 2787112 - รีวิวครั้งสุดท้าย: 4 กุมภาพันธ์ 2556 - Revision: 3.0
ใช้กับ
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
Keywords: 
kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB2787112 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:2787112

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com