อาการ
สมมติว่า คุณใช้คําสั่ง MERGE เพื่อค้นหาจํานวนแถวที่ไม่ตรงกันตามแหล่งข้อมูล และเก็บไว้ในตัวแปรภายในดังนี้:
DECLARE
@NotMatchedBySource INT = 0;
MERGE TargetTable USING SourceTable ON TargetTable.id = SourceTable.id
เมื่อไม่ตรงกันตามแหล่งข้อมูล
UPDATE SET @NotMatchedBySource = @NotMatchedBySource + 1;
PRINT @NotMatchedBySource;
ไป
ในสถานการณ์นี้ คุณอาจสังเกตเห็นว่าค่าของ @NotMatchedBySource หลังจากคําสั่ง MERGE อาจไม่แสดงจํานวนจริงของแถวที่ไม่ตรงกันตามแหล่งที่มา
สถานะ
Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"
การแก้ปัญหา
ปัญหานี้ได้รับการแก้ไขแล้วในการอัปเดตสะสมต่อไปนี้สําหรับ SQL Server
เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server:
แต่ละปรับปรุงสะสมใหม่สําหรับ SQL Server ประกอบด้วยโปรแกรมแก้ไขด่วนทั้งหมด และการแก้ไขข้อบกพร่องด้านความปลอดภัยทั้งหมดที่รวมอยู่ในการปรับปรุงสะสมก่อนหน้านี้ ดูการอัปเดตแบบสะสมล่าสุดสําหรับ SQL Server:
- การอัปเดตสะสมล่าสุดใน SQL Server 2017
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2016
- การอัปเดตสะสมล่าสุดสําหรับ SQL Server 2014
การอ้างอิง
เรียนรู้เกี่ยวกับคำศัพท์ที่ Microsoft ใช้เพื่ออธิบายการอัปเดตซอฟต์แวร์