KB3020112 - การแก้ไข: เกิดข้อผิดพลาดไม่ให้ผลตอบแทนเมื่อคุณดําเนินการคําสั่ง DML ใน SQL Server 2014

นำไปใช้กับ
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use)

อาการ

ปัญหานี้เกิดขึ้นเมื่อคุณเรียกใช้คําสั่ง Data Manipulation Language (DML) บนตารางที่มีดัชนีที่เก็บคอลัมน์แบบคลัสเตอร์ เมื่อปัญหานี้เกิดขึ้น ในมุมมองการจัดการแบบไดนามิก (DMV) ของ sys.column_store_row_groups คุณจะเห็นรายการใหม่จํานวนมากที่คอลัมน์ delta_store_hobt_id ไม่แสดงค่า Null และคอลัมน์แถวผลรวมแสดงจํานวนน้อย คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ด้วย:

หมายเหตุ

ตรวจพบงานที่ไม่ให้ผลตอบแทนใน function = <FunctionName>::Get file = line = <LineNumber>

นอกจากนี้ ไฟล์บันทึกข้อมูลที่เกี่ยวข้องจะถูกสร้างขึ้น

การแก้ปัญหา

ข้อมูล Service Pack

เมื่อต้องการแก้ไขปัญหานี้ ให้ดาวน์โหลด Service Pack 1 สําหรับ SQL Server 2014

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ SQL Server 2014 Service Pack 1 (SP1) ให้ดูบักที่ได้รับการแก้ไขใน SQL Server 2014 Service Pack 1

ข้อมูลการอัปเดตสะสม

ปัญหานี้ได้รับการแก้ไขครั้งแรกในการอัปเดตแบบสะสมของ SQL Server ต่อไปนี้

การอัปเดตสะสม 5 สําหรับ SQL Server 2014 /en-us/help/3011055

เกี่ยวกับการอัปเดตสะสมสําหรับ SQL Server

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

      

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

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

สถานะ

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