การแก้ไขปัญหาการ DBCC ผิดพลาด 2570 ใน SQL Server 2005 และรุ่นที่ใหม่กว่า

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

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

บทนำ

บทความนี้อธิบาย 2570 สิ่งที่ทำให้เกิดข้อผิดพลาด SQL Server ข้อผิดพลาด และวิธีการแก้ไขปัญหา

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

ตรวจสอบ DATA_PURITY

ใน SQL Server 2005 ตัวเลือกใหม่ DATA_PURITY ถูกต้อง คำสั่ง DBCC CHECKDB และ DBCC CHECKTABLE เมื่อคุณเรียกใช้แบบ CHECKDB DBCC หรือคำสั่ง DBCC CHECKTABLE ด้วยตัวเลือกนี้เปิดใช้งาน คำสั่งจะกระทำ การตรวจสอบ "ข้อมูลความบริสุทธิ์" ในทุก ๆ ค่าของคอลัมน์ในแถวทั้งหมดของตาราง หรือ ตารางในฐานข้อมูล มีดำเนินการตรวจสอบเหล่านี้ใหม่เพื่อให้แน่ใจว่าการ ค่าที่เก็บอยู่ในคอลัมน์ถูกต้อง (นั่นคือ ที่ไม่มีค่า ออกแบบของแบบช่วงสำหรับโดเมนที่เกี่ยวข้องกับชนิดข้อมูลของคอลัมน์นั้น) ที่ ลักษณะของการตรวจสอบการดำเนินการขึ้นอยู่กับชนิดข้อมูลของคอลัมน์ ที่ ทำตามรายการที่ไม่ใช่โดยละเอียดแสดงตัวอย่าง:
ยุบตารางนี้ขยายตารางนี้
ชนิดข้อมูลของคอลัมน์ชนิดของดำเนินการตรวจสอบข้อมูล
อักขระ Unicodeความยาวของข้อมูลที่ควรจะเป็น การคูณของ 2
วันที่และเวลาฟิลด์วันที่ควรจะอยู่ระหว่าง 1 1753 มกราคม และวันที่ 31 9999 ธ.ค. ฟิลด์เวลาต้องเป็นรุ่นที่เก่ากว่า '11:59:59:999 PM'
จำนวนจริง และลอยตรวจสอบการมีอยู่ของที่ไม่ถูกต้อง ค่าจุดลอยตัวต้อง SNAN, QNAN, NINF, ND, PD, PINF
ชนิดข้อมูลทั้งหมดที่ไม่มีการตรวจสอบความถูกต้องของคอลัมน์ ข้อมูล เฉพาะที่เป็นไปได้เพื่อให้ค่าที่บันทึกไว้ที่มีไม่เพียงพอ ช่วงจะถูกตรวจสอบ ตัวอย่าง การ tinyint ชนิดข้อมูลที่มีช่วงที่ถูกต้องตั้งแต่ 0 ถึง 255 และเก็บไว้ในตัว ไบต์เดี่ยว (ซึ่งสามารถเก็บได้เฉพาะค่าตั้งแต่ 0 ถึง 255), การตรวจสอบค่าดังนั้น ไม่จำเป็นต้อง

การตรวจสอบความบริสุทธิ์ตรวจสอบข้อมูลจะเปิดใช้งาน สำหรับฐานข้อมูลทั้งหมดโดยอัตโนมัติ เช็คจะเปิดใช้งานขึ้นอยู่กับหลาย ๆ สัดส่วน:
  • สำหรับฐานข้อมูลที่สร้างขึ้นใน SQL Server 2005 และรุ่นที่ใหม่กว่า การตรวจสอบนี้จะเปิดใช้งาน โดยค่าเริ่มต้น และไม่สามารถปิดใช้ งาน ดังนั้นการใช้ตัวเลือก DATA_PURITY เมื่อปฏิบัติการคำสั่ง DBCC CHECKDB หรือ DBCC CHECKTABLE จะไม่เกี่ยวข้อง
  • สำหรับฐานข้อมูลที่สร้างขึ้นในรุ่นก่อนหน้าของ SQL เซิร์ฟเวอร์ เช่น SQL Server 2000, SQL Server 7.0 และรุ่นที่ปรับรุ่นเป็น SQL Server 2005 การตรวจสอบนี้จะไม่เปิดใช้งาน โดยค่าเริ่มต้น เพื่อให้การตรวจสอบ การกระทำ คุณต้องระบุตัวเลือก DATA_PURITY ใน CHECKDB การ DBCC หรือ คำสั่ง DBCC CHECKTABLE จะทำให้สิ่งที่สอง:
    • คำสั่ง DBCC เสร็จสิ้น และรายงานที่ฐานข้อมูล ไม่สะอาด รวมถึงการตรวจสอบความบริสุทธิ์ของข้อมูลทั้งหมด ข้อเท็จจริงนี้ถูกบันทึกในการ ส่วนหัวของฐานข้อมูล ในเวลาต่อมา DBCC CHECKDB หรือ DBCC CHECKTABLE สั่งทั้งหมด executions จะสังเกตเห็นข้อมูลนี้ และจะทำข้อมูลโดยอัตโนมัติ เช็คความบริสุทธิ์ ในขณะที่จะเกิดขึ้นสำหรับฐานข้อมูลที่สร้างขึ้นบน SQL Server 2005 ใน คำอื่น ๆ เมื่อฐานข้อมูลนี้เรียกว่า "คลี ให้ตรวจสอบความบริสุทธิ์ของข้อมูลได้ ทำเสมอ
    • คำสั่ง DBCC เสร็จสิ้น แต่รายงานปัญหาเกี่ยวกับ ความไม่สอดคล้องของข้อมูล ถ้าเป็นกรณีนี้ คุณจะต้องใช้ฐานข้อมูลเพื่อการทำความสะอาด การเอาออกที่ไม่สอดคล้องกัน และพยายามเรียกใช้คำสั่ง DBCC อีกครั้ง คุณจะต้องระบุตัวเลือก DATA_PURITY สำหรับคำสั่ง DBCC จนถึงการ มีรายงานฐานข้อมูลให้ใหม่ทั้งหมด
  • ถ้ามีระบุตัวเลือก PHYSICAL_ONLY เมื่อการ DBCC ดำเนินการคำสั่ง CHECKDB หรือ DBCC CHECKTABLE ไม่ตรวจสอบความบริสุทธิ์ของข้อมูล ดำเนินการ

อาการ

ข้อมูลที่ไม่ถูกต้อง หรือหมดช่วงอาจถูกเก็บไว้ใน SQL เซิร์ฟเวอร์ฐานข้อมูลในรุ่นก่อนหน้านี้สำหรับเหตุผลต่อไปนี้:
  • ข้อมูลที่ไม่ถูกต้องมีอยู่ในแหล่งมาในขณะที่ใช้จำนวนมาก แทรกวิธี เช่นโปรแกรมอรรถประโยชน์ของ bcp
  • ข้อมูลที่ไม่ถูกต้องถูกส่งผ่านไปผ่าน RPC เหตุการณ์การโทรศัพท์ไป SQL Server
  • อื่น ๆ อาจทำให้เกิดความเสียหายทางกายภาพของข้อมูลที่เหลือ ค่าของคอลัมน์ในสถานะไม่ถูกต้อง
ถ้าคุณมีข้อมูลที่ไม่ถูกต้องในคอลัมน์ของตาราง คุณอาจพบปัญหาขึ้นอยู่กับชนิดของการดำเนินการที่จะดำเนินการกับข้อมูลไม่ถูกต้อง อย่างไรก็ตาม ยังสามารถใช้ได้ไม่มีปัญหาจะปรากฏขึ้น และข้อมูลไม่ถูกต้องจะไม่ถูกค้นพบจนกว่าคุณเรียกใช้คำสั่ง DBCC CHECKDB หรือ DBCC CHECKTABLE บน SQL Server 2005 และรุ่นที่ใหม่กว่า

อาการบางอย่างคุณ เนื่องจากถึงสถานะการออนไลน์ของข้อมูลที่ไม่ถูกต้องอาจแจ้งเตือนรวมถึง (แต่ไม่จำกัด ถึง):
  • การละเมิดการเข้าถึงหรือข้อยกเว้นในขณะที่ชนิดอื่น ๆ การดำเนินการแบบสอบถามกับคอลัมน์ได้รับผลกระทบ
  • ผลลัพธ์ที่ไม่ถูกต้องถูกส่งกลับ โดยแบบสอบถามที่ดำเนินการกับการ คอลัมน์ที่ได้รับผลกระทบ
  • ข้อผิดพลาดหรือปัญหาเมื่อสถิติจะถูกสร้างขึ้นจาก คอลัมน์ที่ได้รับผลกระทบ
  • ข้อผิดพลาดดังต่อไปนี้:
    ข่าวสารเกี่ยวกับ 9100 ระดับ 23, 2 สถานะ ดัชนีเสียหาย 1 บรรทัดไปได้ที่ตรวจพบ เรียกใช้การ DBCC CHECKDB

รายงานปัญหา DATA_PURITY

เมื่อคุณเรียกใช้คำสั่ง DBCC CHECKDB หรือ DBCC CHECKTABLE ด้วย การเปิดใช้งานตัวเลือก DATA_PURITY (หรือมีการเรียกใช้การตรวจสอบความบริสุทธิ์ของข้อมูล โดยอัตโนมัติ), และข้อมูลที่ไม่ถูกต้องอยู่ในตารางการตรวจสอบ โดยการ DBCC คำสั่ง เอาท์พุต DBCC ประกอบด้วยข้อความเพิ่มเติมที่บ่งชี้ว่า การ ปัญหากับข้อมูล ข้อผิดพลาดบางอย่างที่บ่งชี้ถึงความบริสุทธิ์ของข้อมูล ปัญหาจะแสดงอยู่ด้านล่าง:
ผลลัพธ์การ DBCC สำหรับ "account_history"
ข่าวสารเกี่ยวกับ 2570 ระดับ 16 สถานะ 2 บรรทัด 1
หน้า (1:1073), ช่องเสียบ 33 ในวัตถุ ID 1977058079 ดัชนี ID 0 พาร์ติชัน ID 129568478265344 หน่วย%การปันส่วนหมายเลข 129568478265344 (ชนิด "ในแถวข้อมูล") คอลัมน์ "account_name_japan" ค่าอยู่นอกช่วงสำหรับชนิดข้อมูล "nvarchar" ปรับปรุงคอลัมน์ไปที่ค่าที่ถูกต้อง
ข่าวสารเกี่ยวกับ 2570 ระดับ 16 สถานะ 2 บรรทัด 1
หน้า (1:1156) ช่องเสียบ 120 ในวัตถุ ID 1977058079 ดัชนี ID 0, 129568478265344 ID รหัสหน่วย%การปันส่วนพาร์ติชัน 129568478265344 (พิมพ์ "ในแถวข้อมูล") รับค่าในคอลัมน์ "account_name_japan" ช่วงสำหรับชนิดข้อมูล "nvarchar" ปรับปรุงคอลัมน์ไปที่ค่าที่ถูกต้อง
มี มีแถว 153137 ในหน้า 1080 สำหรับวัตถุ "account_history"
CHECKDB ที่พบ ข้อผิดพลาดการปันส่วน 0 และ 338 ข้อผิดพลาดความสอดคล้องในตาราง "account_history" (วัตถุ ID 1977058079)
CHECKDB พบข้อผิดพลาดในการปันส่วน 0 และ 338 ข้อผิดพลาดความสอดคล้องในฐานข้อมูล 'BadUnicodeData'
การดำเนินการ DBCC เสร็จสมบูรณ์ ถ้า DBCC พิมพ์ข้อความแสดงข้อผิดพลาด ติดต่อผู้ดูแลระบบของคุณ
ผลลัพธ์การ DBCC สำหรับ 'table1'
ข่าวสารเกี่ยวกับ 2570 ระดับ 16 สถานะ 3 บรรทัด 1
หน้า (1:154), ช่องเสียบ 0 ในวัตถุ ID 2073058421 ดัชนี ID 0, 72057594038321152 ID หน่วย%การปันส่วนหมายเลข 72057594042318848 (ชนิดแบ่งพาร์ติชัน "ในแถวข้อมูล") คอลัมน์ "col2" ค่าอยู่นอกช่วงสำหรับชนิดข้อมูล "จริง" ปรับปรุงคอลัมน์ไปที่ค่าที่ถูกต้อง
มี 4 แถวในหน้า 2 สำหรับวัตถุ "table1"
CHECKDB พบข้อผิดพลาดในการปันส่วน 0 และข้อผิดพลาดความสอดคล้องของ 1 ใน ตาราง 'table1' (วัตถุ ID 2073058421)
CHECKDB พบข้อผิดพลาดการปันส่วน 0 และข้อผิดพลาดในการสอบอย่างสม่ำเสมอ 1 ในฐานข้อมูล 'realdata' การดำเนินการ DBCC เสร็จสมบูรณ์ If DBCC พิมพ์ข้อผิดพลาดข้อความ ติดต่อผู้ดูแลระบบของคุณ
ผลลัพธ์การ DBCC สำหรับ 'table2'
ข่าวสารเกี่ยวกับ 2570 ระดับ 16 สถานะ 3 บรรทัด 1
หน้า (1:155), ช่องเสียบ 0 ในวัตถุ ID 2105058535 ดัชนี ID 0, 72057594038452224 ID หน่วย%การปันส่วนหมายเลข 72057594042449920 (ชนิดแบ่งพาร์ติชัน "ในแถวข้อมูล") คอลัมน์ "col2" ค่าอยู่นอกช่วงสำหรับชนิดข้อมูล "ทศนิยม" ปรับปรุงคอลัมน์ไปที่ค่าที่ถูกต้อง
มี 4 แถวในหน้า 1 สำหรับวัตถุ "table2"
CHECKDB พบข้อผิดพลาดในการปันส่วน 0 และข้อผิดพลาดความสอดคล้องของ 1 ใน ตาราง 'table2' (วัตถุ ID 2105058535)
CHECKDB พบข้อผิดพลาดการปันส่วน 0 และข้อผิดพลาดในการสอบอย่างสม่ำเสมอ 1 ในฐานข้อมูล 'realdata' การดำเนินการ DBCC เสร็จสมบูรณ์ If DBCC พิมพ์ข้อผิดพลาดข้อความ ติดต่อผู้ดูแลระบบของคุณ
ผลลัพธ์การ DBCC สำหรับ 'table3'
ข่าวสารเกี่ยวกับ 2570 ระดับ 16 สถานะ 3 บรรทัด 1
หน้า (1:157), ช่องเสียบ 0 ในวัตถุ ID 2121058592 ดัชนี ID 0, 72057594038517760 ID หน่วย%การปันส่วนหมายเลข 72057594042515456 (ชนิดแบ่งพาร์ติชัน "ในแถวข้อมูล") คอลัมน์ "col2" ค่าอยู่นอกช่วงสำหรับชนิดข้อมูล "วันที่และเวลา" ปรับปรุงคอลัมน์ไปที่ค่าที่ถูกต้อง
ไม่มีแถวที่ 3 ในหน้า 1 สำหรับวัตถุ "table3"
CHECKDB พบข้อผิดพลาดในการปันส่วน 0 และข้อผิดพลาดความสอดคล้องของ 1 ใน ตาราง 'table3' (วัตถุ ID 2121058592)
CHECKDB พบข้อผิดพลาดการปันส่วน 0 และข้อผิดพลาดในการสอบอย่างสม่ำเสมอ 1 ในฐานข้อมูล 'realdata' การดำเนินการ DBCC เสร็จสมบูรณ์ If DBCC พิมพ์ข้อผิดพลาดข้อความ ติดต่อผู้ดูแลระบบของคุณ
สำหรับ มีสร้างแต่ละแถวที่ประกอบด้วยค่าคอลัมน์ที่ไม่ถูกต้อง มีข้อผิดพลาด 2570

การแก้ไขปัญหาความบริสุทธิ์ของข้อมูล

2570 ข้อผิดพลาดไม่สามารถซ่อมโดยใช้การซ่อมแซม DBCC ใด ๆ ตัวเลือก เนื่องจากไม่สามารถสำหรับ DBCC เพื่อกำหนดค่าใด ควรใช้การแทนค่าของคอลัมน์ที่ไม่ถูกต้อง ดังนั้น ต้องเป็นค่าคอลัมน์ ปรับปรุงด้วยตนเอง

เมื่อต้องทำการปรับปรุงด้วยตนเอง คุณจำเป็นต้องค้นหาแถว ที่มีปัญหา มีสองวิธีในการทำงานนี้ให้สำเร็จ
  • แบบสอบถามกับตารางที่ประกอบด้วยดำเนินการ ค่าที่ไม่ถูกต้องในการค้นหาแถวต่าง ๆ ที่ประกอบด้วยค่าไม่ถูกต้อง
  • ใช้ข้อมูลจากข้อผิดพลาด 2570 เพื่อระบุการ แถวที่มีค่าไม่ถูกต้อง
เราจะอธิบายวิธีการเหล่านี้ในรายละเอียดด้านล่าง ทั้งสองโดยใช้ ตัวอย่างการค้นหาแถวที่มีข้อมูลที่ไม่ถูกต้อง

เมื่อคุณพบการ แถวที่ถูกต้อง การตัดสินจำเป็นต้องมีค่าใหม่ที่จะใช้ในการ แทนข้อมูลที่มีอยู่ไม่ถูกต้อง มีการตัดสินใจนี้จะทำอย่างระมัดระวังมาก ขึ้นอยู่กับช่วงของค่าที่ทำงานสำหรับโปรแกรมประยุกต์เป็นอะไร เหมาะสมที่ตรรกะสำหรับแถวข้อมูลที่เฉพาะเจาะจง ตัวเลือกต่าง ๆ ที่คุณมีอยู่:
  • ถ้าคุณทราบค่าใดที่ไม่ถูกต้อง กำหนดเป็นที่ ค่าที่ระบุ
  • ตั้งเป็นค่าเริ่มต้นที่ยอมรับ
  • ตั้งค่าคอลัมน์เป็น NULL
  • ตั้งค่าคอลัมน์เป็นค่าสูงสุด หรือต่ำสุด ชนิดข้อมูลของคอลัมน์
  • ถ้าคุณรู้สึกว่า แถวที่ระบุไม่ได้อยู่ใด ๆ โดยไม่ต้องการใช้ ค่าสำหรับคอลัมน์ที่ถูกต้อง คุณสามารถลบแถวนั้นทั้งหมด

การค้นหาแถวที่ มีค่าที่ไม่ถูกต้องโดยใช้แบบสอบถาม SQL ของ T

ชนิดของแบบสอบถามที่คุณต้องการดำเนินการค้นหาแถวที่มี ค่าที่ไม่ถูกต้องขึ้นอยู่กับชนิดข้อมูลของคอลัมน์ที่มีรายงานปัญหา ถ้าคุณดูข้อความแสดงข้อผิดพลาดที่ 2570 คุณจะสังเกตเห็นสองชิ้นที่สำคัญของ ข้อมูลที่จะช่วยคุณในที่นี้ ในตัวอย่างต่อไปนี้ คอลัมน์ "account_name_japan" ค่าอยู่นอกช่วงสำหรับชนิดข้อมูล "nvarchar" เราสามารถ ที่มีปัญหาเช่นเดียวกับชนิดข้อมูลของ คอลัมน์ที่ระบุได้โดยง่ายนั้น คอลัมน์ที่เกี่ยวข้อง ดังนั้น เมื่อคุณทราบชนิดข้อมูล และคอลัมน์ที่เกี่ยว ข้อง คุณ สามารถกำหนดแบบสอบถามเพื่อค้นหาแถวที่ประกอบด้วยค่าที่ไม่ถูกต้องสำหรับที่ คอลัมน์ จำเป็นต้องใช้เพื่อระบุแถวนั้น (เป็นเพรดิเคตในคอลัมน์ที่เลือก คำสั่ง where) สำหรับใด ๆ เพิ่มเติมปรับปรุง หรือลบ

ชนิดข้อมูลแบบ Unicode:
SELECT col1 ,DATALENGTH(account_name_japan) as Length ,account_name_japan 
FROM account_history
WHERE DATALENGTH(account_name_japan) % 2 != 0

ลอยชนิดข้อมูล:
-- Change col1 to your actual primary key column(s), col2 to the column from the 2570 error, table1 to the table from the CHECKDB output

SELECT col1, col2 FROM table1
WHERE col2<>0.0 AND (col2 < 2.23E-308 OR col2 > 1.79E+308) AND (col2 < -1.79E+308 OR col2 > -2.23E-308)

ชนิดข้อมูลจริง:
-- Change col1 to your actual primary key column(s), col2 to the column from the 2570 error, table1 to the table from -- the CHECKDB output

SELECT col1, col2 FROM testReal 
WHERE col2<>0.0 AND (col2 < CONVERT(real,1.18E-38) OR col2 > CONVERT(real,3.40E+38)) AND (col2 < CONVERT(real,-3.40E+38) OR col2 > CONVERT(real,-1.18E-38)) 
ORDER BY col1; -- checks for real out of range
ทศนิยม และตัวเลขชนิดของข้อมูล:
SELECT col1 FROM table2
WHERE col2 > 9999999999.99999 
OR col1 < -9999999999.99999
โปรดจำไว้ว่าคุณจะต้องปรับค่าตาม ความแม่นยำและมาตราส่วนที่คุณได้กำหนดคอลัมน์ decimal หรือ numeric ในตัวอย่างข้างต้น คอลัมน์ถูกกำหนดเป็น col2 decimal(15,5)

วันเวลาข้อมูลชนิด:
คุณจะต้องเรียกใช้แบบสอบถามที่แตกต่างกันสองเพื่อระบุ แถวที่ประกอบด้วยค่าที่ไม่ถูกต้องสำหรับคอลัมน์เวลาวัน
SELECT col1 FROM table3
WHERE col2 < '1/1/1753 12:00:00 AM' OR col2 > '12/31/9999 11:59:59 PM'

SELECT col1 FROM table3 WHERE
((DATEPART(ms,col2)+ (1000*DATEPART(s,col2)) + (1000*60*DATEPART(mi,col2)) + (1000*60*60*DATEPART(hh,col2)))/(1000*0.00333)) 
> 25919999

การค้นหาแถวที่ มีค่าที่ไม่ถูกต้องโดยใช้ตำแหน่งที่ตั้งทางกายภาพ:

คุณสามารถใช้วิธีนี้คุณไม่สามารถค้นหาแถวของ ดอกเบี้ยที่ใช้วิธี T-SQL ที่กล่าวถึงข้างต้น ในข้อความแสดงข้อผิดพลาดของ 2570, พิมพ์ตำแหน่งที่ตั้งทางกายภาพของแถวที่ประกอบด้วยค่าไม่ถูกต้อง สำหรับ ตัวอย่าง ลักษณะที่ปรากฏในข้อความต่อไปนี้:
หน้า (1:157), ช่องเสียบ 0 ในวัตถุ ID 2121058592 ดัชนี ID 0 พาร์ติชัน ID 72057594038517760 หน่วย%การปันส่วนหมายเลข 72057594042515456 (ชนิด "ในแถวข้อมูล") ค่าในคอลัมน์ "col2" นอกระยะสำหรับชนิดข้อมูล "วันที่และเวลา" การปรับปรุงคอลัมน์ให้เป็นกฎหมาย ค่า
ในข้อความนี้ คุณจะสังเกตเห็นข้อมูล: หน้า (1:157), ช่องเสียบ 0 ข้อมูลที่คุณจำเป็นต้องระบุแถวอยู่ FileId เป็น 1 PageInFile เป็น 157 และ SlotId เป็น 0 เมื่อคุณมีข้อมูลนี้ คุณ จำเป็นต้องดำเนินการ คำสั่งต่อไปนี้:
DBCC TRACEON ( 3604 )
DBCC PAGE ( realdata , 1 , 157 , 3 )
คำสั่งนี้จะพิมพ์เนื้อหาทั้งหมดของเพจ พารามิเตอร์ที่ต้องการ มีคำสั่ง DBCC หน้า:
  • ชื่อฐานข้อมูล
  • FileId
  • PageInFile
  • ตัวเลือกพิมพ์
เมื่อคุณเรียกใช้คำสั่งนี้ คุณจะสังเกตเห็นการแสดงผลที่ ประกอบด้วยข้อมูลที่คล้ายกับรูปแบบต่อไปนี้:
Slot 0 Offset 0x60 Length 19 Record Type = PRIMARY_RECORD Record
		  Attributes = NULL_BITMAP Memory Dump @0x44D1C060 00000000: 10001000 01000000
		  ffffffff ffffffff ?................ 00000010:
		  0200fc???????????????????????????????... Slot 0 Column 0 Offset 0x4 Length 4 col1 = 1Slot 0 Column 1 Offset 0x8 Length 8 col2 = Dec 31 1899 19:04PM Slot 1 Offset 0x73 Length 19 Record Type = PRIMARY_RECORD Record
		  Attributes = NULL_BITMAP Memory Dump @0x44D1C073 00000000: 10001000 02000000
		  0ba96301 f8970000 ?..........c..... 00000010:
		  0200fc???????????????????????????????... Slot 1 Column 0 Offset 0x4 Length 4
		  col1 = 2 Slot 1 Column 1 Offset 0x8 Length 8 col2 = Jul 8 2006 9:34PM Slot 2
		  Offset 0x86 Length 19 Record Type = PRIMARY_RECORD Record Attributes =
		  NULL_BITMAP Memory Dump @0x44D1C086 00000000: 10001000 03000000 0ba96301
		  f8970000 ?..........c..... 00000010: 0200fc???????????????????????????????...
		  Slot 2 Column 0 Offset 0x4 Length 4 col1 = 3 Slot 2 Column 1 Offset 0x8 Length
		  8 col2 = Jul 8 2006 9:34PM 
ในการแสดงผลนี้คุณสามารถ ดูค่าของคอลัมน์สำหรับแถวที่คุณสนใจอย่างชัดเจน ในกรณีนี้ คุณ จำเป็นในแถวที่เก็บอยู่ในช่องเสียบที่ 0 ของเพจ จากข้อความแสดงข้อผิดพลาด คุณทราบ col2 ที่มีปุ่มที่ มีปัญหา ดังนั้น คุณสามารถนำค่า col1 สำหรับ ช่องเสียบ 0 และใช้เป็นเพรดิเคตในคำสั่ง where ของคำสั่ง update ของคุณ หรือลบคำสั่ง

คำเตือน เราขอแนะนำให้ คุณใช้วิธีการแรก (นั่นคือ ใช้ SQL server T แบบสอบถามเพื่อค้นหาข้อมูลที่จำเป็น) ใช้เพ DBCC คำสั่งเท่านั้นเป็นแบบ ทางเลือกสุดท้าย ใช้ utmost ดูแลในขณะที่คุณใช้คำสั่งนี้ในการผลิต สภาพแวดล้อม ควรมีการคืนค่าฐานข้อมูลการผลิตในการทดสอบ เซิร์ฟเวอร์ แล้ว ได้รับข้อมูลที่จำเป็นทั้งหมดที่ใช้หน้า DBCC และจัดทำแล้ว นั้น โปรแกรมปรับปรุงบนเซิร์ฟเวอร์การผลิต เสมอ ตรวจสอบให้แน่ใจว่าเก็บสำเนาสำรองพร้อม ในกรณีที่เกิดข้อผิดพลาด และคุณจำเป็นต้องแปลงกลับเป็นสำเนาก่อนหน้านี้ ฐานข้อมูล

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง DBCC CHECKDB หัวข้อ "DBCC CHECKDB (Transact SQL)" ในการพัฒนาของ Microsoft ต่อไปนี้ เว็บไซต์เครือข่าย (MSDN):
http://msdn2.microsoft.com/en-us/library/ms176064.aspx
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับล่า การตัดสินค้าจากคลังใน SQL Server 2000 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดู บทความในฐานความรู้ของ Microsoft:
900335แก้ไข: การดำเนินงานการกู้คืนอัตโนมัติของฐานข้อมูล SQL Server 2000 อาจไม่สำเร็จถ้าดัชนีประกอบด้วยชนิดข้อมูลแบบลอยหรือชนิดข้อมูลจริง และชนิดข้อมูลนี้ประกอบด้วยค่า NaN
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเหตุการณ์ RPC ให้ดู "เรียกใช้กระบวนงานที่เก็บไว้ (OLE DB)" หัวบนเว็บไซต์ต่อไปนี้:
ขอบ http://msdn2.microsoft.com/en-us/library/aa198358 (SQL.80)
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับชนิดข้อมูลที่ต่างกัน ให้ดู "เรียกใช้กระบวนงานที่เก็บไว้ (OLE DB)" หัวบนเว็บไซต์ต่อไปนี้:
http://msdn2.microsoft.com/en-us/library/ms187752.aspx
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อตกลงค่าในจุดลอยตัว Intel เว็บไซต์ต่อไปนี้:
http://www.intel.com/design/pentiumii/manuals/243191.htm
Microsoft แสดงข้อมูลที่ติดต่อของบริษัทอื่นเพื่อช่วยให้คุณสามารถขอรับการสนับสนุนทางเทคนิค ข้อมูลการติดต่อนี้อาจเปลี่ยนแปลงโดยไม่ต้องแจ้งให้ทราบ Microsoft ไม่มี รับประกันความถูกต้องของข้อมูลการติดต่อของบริษัทอื่น

คุณสมบัติ

หมายเลขบทความ (Article ID): 923247 - รีวิวครั้งสุดท้าย: 22 มีนาคม 2555 - Revision: 3.0
ใช้กับ
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Express with Advanced Services
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Standard Edition for Small Business
Keywords: 
kbtshoot kbexpertiseadvanced kbsql2005engine kbinfo kbmt KB923247 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:923247

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

 

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