KB3103998 - แก้ไข: การละเมิดการเข้าถึงเมื่อคุณเรียกใช้คําสั่ง INSERT, UPDATE หรือ MERGE ในมุมมองที่ใช้ WITH CHECK OPTION ใน SQL Server 2014

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

อาการ

เมื่อคุณเรียกใช้คําสั่ง INSERT, UPDATE หรือ MERGE ในมุมมองที่กําหนดโดยไวยากรณ์ WITH CHECK OPTION ไฟล์บันทึกข้อมูลจะถูกสร้างขึ้น และ Microsoft SQL Server บันทึกข้อความแสดงข้อผิดพลาดต่อไปนี้ในบันทึกของแอปพลิเคชัน:

หมายเหตุ

<การประทับเวลา> เซิร์ฟเวอร์ คําขอของผู้ใช้จากเซสชันที่มี SPID <#> สร้างข้อยกเว้นร้ายแรง SQL Server กําลังจะสิ้นสุดเซสชันนี้ ติดต่อฝ่ายบริการสนับสนุนผลิตภัณฑ์ที่มีการถ่ายโอนข้อมูลที่ผลิตในไดเรกทอรีบันทึก
…
<การประทับเวลา> spid<#> SqlDumpExceptionHandler: กระบวนการ <#> สร้างข้อยกเว้นร้ายแรง c0000005 EXCEPTION_ACCESS_VIOLATION SQL Server กําลังจะสิ้นสุดกระบวนการนี้

การแก้ปัญหา

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

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

ข้อแนะนํา: ติดตั้งการอัปเดตสะสมล่าสุดสําหรับ SQL Server

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

      

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

ปัญหานี้เกิดขึ้นเฉพาะเมื่อคุณเรียกใช้คําสั่ง INSERT, UPDATE หรือ MERGE บนมุมมองที่กําหนดโดยใช้ไวยากรณ์ WITH CHECK OPTION ตัวอย่างเช่น

UPDATE "<ViewName>" SET
"<ColumnA>" = <NewValue> WHERE 
("<ColumnB>" = <ColumnBValue>)

วิธีแก้ไขปัญหาชั่วคราว

  • เรียกใช้คําสั่ง INSERT, UPDATE หรือ MERGE กับตารางที่เป็นต้นแบบของมุมมองที่กําหนดโดยใช้ไวยากรณ์ WITH CHECK OPTION
  • เปลี่ยนหรือสร้างมุมมองที่เกี่ยวข้องอีกครั้งเพื่อให้แน่ใจว่าไม่ได้ใช้ไวยากรณ์ WITH CHECK OPTION

สถานะ

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