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: Process <#> generated fatal exception 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 ที่แสดงไว้ในส่วน "นำไปใช้กับ"