อาการ
เมื่อคุณเรียกใช้คิวรีที่ประกอบด้วยข้อมูลวัตถุขนาดใหญ่ (LOB) เพื่อโหลดลงในตัวแปร Transact SQL ใน Microsoft SQL Server ๒๐๐๘, Microsoft SQL Server ๒๐๑๒หรือ Microsoft SQL Server ๒๐๐๘ R2 ความเสียหายของข้อมูลจะเกิดขึ้น ตัวอย่างเช่นคุณเรียกใช้คิวรีต่อไปนี้เพื่อคัดลอกข้อมูล XML จากคอลัมน์ฐานข้อมูลไปยังตัวแปร XML: Declare @OUTXML as XMLSELECT @OUTXML = DataXml FROM Table_1 WHERE id=1 ในสถานการณ์นี้คำสั่ง select จะเรียกใช้เมื่อเธรดอื่นพยายามปรับปรุงคอลัมน์ XML เดียวกัน ลักษณะการทำงานนี้อาจทำให้เกิดความเสียหายของข้อมูล นอกจากนี้คุณจะได้รับข้อความแสดงข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้เมื่อคุณทำการดำเนินการอ่านและเขียนบนคอลัมน์ XML ที่เสียหาย:
-
ชนิดข้อมูล XML เสียหาย
-
การสิ้นสุดของไฟล์ที่ไม่คาดคิดเกิดขึ้น
หมายเหตุ
-
ปัญหานี้มักจะเกิดขึ้นระหว่างการดำเนินการการโหลดที่เกิดขึ้นพร้อมกันสูง
-
เมื่อคุณใช้ตัวแทนผู้อ่านล็อกเพื่ออ่านข้อมูล XML ที่เสียหายจากตารางที่เป็นส่วนหนึ่งของรายการบทความสิ่งพิมพ์สำหรับการจำลองแบบของทรานแซคชันคุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
ชนิดข้อมูล XML เสียหาย (แหล่งที่มา: MSSQLServer, หมายเลขข้อผิดพลาด: ๖๖๑๑)
สาเหตุ
ปัญหานี้เกิดขึ้นเนื่องจากการล็อกบนคอลัมน์ข้อมูลที่ LOB จะถูกนำออกใช้ก่อนที่จะคัดลอกข้อมูลที่ LOB จากคอลัมน์ฐานข้อมูลไปยังตัวแปรชนิดข้อมูลที่ LOB คิวรีที่เกิดขึ้นพร้อมกันสามารถอัปเดตข้อมูลที่ LOB เหมือนกันก่อนที่กระบวนการคัดลอกจะเสร็จสมบูรณ์ในระหว่างกระบวนการคัดลอก ดังนั้นความเสียหายของข้อมูลจะเกิดขึ้น
การแก้ไข
ข้อมูลโปรแกรมอัปเดตสะสม
การอัปเดตที่สะสม7สำหรับ SQL Server ๒๐๑๒
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน7การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๑๒ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๘๒๓๒๔๗ แพคเกจโปรแกรมปรับปรุงที่สะสม7สำหรับ SQL Server ๒๐๑๒หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๑๒รุ่นก่อนหน้านี้ เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๖๙๒๘๒๘ SQL Server ๒๐๑๒รุ่นที่เผยแพร่หลังจากที่มีการเผยแพร่ SQL Server ๒๐๑๒
การอัปเดตที่สะสม12สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 1
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน12การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 1 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๘๒๘๗๒๗ แพคเกจโปรแกรมปรับปรุงที่สะสม12สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 1หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ใน SQL Server ๒๐๐๘ R2 Service Pack 1 เวอร์ชันก่อนหน้า เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๕๖๗๖๑๖ รุ่นของ SQL Server ๒๐๐๘ R2 รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๐๘ R2 Service Pack 1 ได้รับการเผยแพร่แล้ว
การอัปเดตที่สะสม10สำหรับ SQL Server ๒๐๐๘ Service Pack 3
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน10การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ Service Pack 3 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๘๑๔๗๘๓ แพคเกจโปรแกรมปรับปรุงที่สะสม10สำหรับ SQL Server ๒๐๐๘ Service Pack 3หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไขรุ่นก่อนหน้าของ SQL Server ๒๐๐๘ Service Pack 3 เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๖๒๙๙๖๙ รุ่นของ SQL Server ๒๐๐๘รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๐๘ Service Pack 3 ได้รับการเผยแพร่แล้ว
การอัปเดตที่สะสม5สำหรับ SQL Server ๒๐๐๘ R2 Service Pack 2 (SP2)
การแก้ไขสำหรับปัญหานี้ถูกนำออกใช้ครั้งแรกใน5การอัปเดตที่สะสม สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงที่สะสมนี้สำหรับ SQL Server ๒๐๐๘ R2 S2008 R2 SP2 ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
๒๗๙๗๔๖๐ แพคเกจโปรแกรมปรับปรุงที่สะสม5สำหรับ SQL Server ๒๐๐๘ R2 S2008 R2 SP2หมายเหตุ เนื่องจาก builds สะสมแต่ละรุ่นของการแก้ไขใหม่มีโปรแกรมแก้ไขด่วนทั้งหมดและการแก้ไขการรักษาความปลอดภัยทั้งหมดที่รวมอยู่ในเวอร์ชันก่อนหน้าของ SQL Server ๒๐๐๘ R2 S2008 R2 SP2 เราขอแนะนำให้คุณพิจารณาใช้การแก้ไขการแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ สำหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความใน Microsoft Knowledge Base:
๒๗๓๐๓๐๑ รุ่นของ SQL Server ๒๐๐๘ R2 รุ่นที่เผยแพร่หลังจาก SQL Server ๒๐๐๘ R2 Service Pack 2 ถูกเผยแพร่แล้ว
สถานะ
Microsoft ยืนยันว่าปัญหานี้เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ซึ่งมีการระบุไว้ในส่วน "นำไปใช้กับ"