ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

อาการ

เมื่อคุณเรียกใช้การอัปเดตในตารางที่มีดัชนีแบบคลัสเตอร์หรือดัชนีที่ไม่ซ้ํากัน และการอัปเดตเกิดขึ้นในคอลัมน์ที่ไม่ใช่คอลัมน์ที่ไม่ซ้ํากันหลัก ระเบียนการติดตามการเปลี่ยนแปลงไม่สอดคล้องกับคําสั่งการอัปเดต

ตัวอย่างเช่น สมมติว่าคอลัมน์ที่ชื่อ "column1" ถูกรวมอยู่ในดัชนีแบบกลุ่มหรือดัชนีที่ไม่ซ้ํากัน เมื่อค่าของคอลัมน์ถูกเปลี่ยนจากค่าที่มากกว่าเป็นค่าที่น้อยกว่า (เช่น การเปลี่ยนค่าจาก 20 เป็น 16) ตารางด้านการติดตามการเปลี่ยนแปลงจะได้รับการดําเนินการแทรกก่อนการดําเนินการลบ ตัวอย่างเช่น ได้รับการดําเนินการแทรกระเบียนแถวของบันทึกทรานแซคชันก่อนที่จะมีการลบการดําเนินการของแถว หรือ "I" จะถูกแทรกก่อน "D"

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1116

19

ฉัน

NULL

NULL

5639485628

1116

20

D

NULL

NULL

5639485628


เมื่อค่าของคอลัมน์ถูกเปลี่ยนจากน้อยกว่าเป็นค่าที่มากกว่า (เช่น การเปลี่ยนค่าจาก 16 เป็น 20) "D" จะถูกแทรกก่อน "I"

Sys_change_version

sys_change_create_version

sys_change_operation

sys_change_column

sys_change_context

PK_column

1126

32

D

NULL

NULL

5639485628

1126

33

ฉัน

NULL

NULL

5639485628

สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจากการจัดลําดับที่ไม่ถูกต้องระหว่างคู่ลบ/แทรกในตารางด้านการติดตามการเปลี่ยนแปลง

การแก้ไข

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

         การอัปเดตสะสม 8 สําหรับ SQL Server 2017

         การอัปเดตสะสม 9 สําหรับ SQL Server 2016 Service Pack 1

การอัปเดตสะสม 12 สําหรับ SQL Server 2014 SP2

เกี่ยวกับรุ่นSQL Server

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

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

รุ่นล่าสุดสําหรับ SQL Server 2016

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

สถานะ

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

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

สําหรับตารางที่เปิดใช้งานการติดตามการเปลี่ยนแปลง เมื่อมีการอัปเดตเกิดขึ้นในคอลัมน์ที่ไม่ใช่คอลัมน์หลักซึ่งถูกกําหนดให้ไม่ซ้ํากัน สองรายการจะถูกแทรกลงในตารางด้านข้างการติดตามการเปลี่ยนแปลง: หนึ่งรายการสําหรับแต่ละการดําเนินการแยก แทรก และ ลบ

เมื่อฟังก์ชัน CHANGETABLE ถูกเรียกให้แจงนับการเปลี่ยนแปลง รายการเหล่านี้จะถูกเรียงลําดับตามค่าคีย์หลัก แล้วการดําเนินการจะถูกรวม ถ้าการอัปเดตแทรกค่าที่ต่ํากว่า การดําเนินการ "I" จะทํางานบนตารางด้านข้างก่อน ตามด้วยการดําเนินการ "D" ซึ่งทําให้การดําเนินการที่ไม่ถูกต้องถูกส่งกลับสําหรับแถวนี้ เนื่องจาก "I" ตามด้วย "D" ถูกรวมเป็น "D"

เนื่องจากเฉพาะค่าคีย์หลักเท่านั้นที่จะถูกเก็บรักษาไว้ในตารางด้านข้าง จึงไม่จําเป็นต้องมีรายการแยกกันสองรายการ ค่านี้เป็นจริงตราบใดที่คอลัมน์คีย์หลักไม่ได้รับการอัปเดต

ปัญหานี้ได้รับการแก้ไขแล้วสําหรับคอลัมน์ที่ไม่ซ้ํากันที่ไม่ใช่คอลัมน์หลัก ในกรณีนี้ เมื่อการอัปเดตเกิดขึ้น แถวเดียวเท่านั้นจะถูกแทรกโดยมี "U" เป็นการดําเนินการอัปเดตแทนที่จะเป็นสองรายการที่มี "D" และ "I"

อ้างอิง

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

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×