KB4469908 - แก้ไข: เกิดข้อผิดพลาด 3961 เมื่อคุณใช้บทบาทแอปพลิเคชันเป็นครั้งที่สองในแบบจําลองรองแบบอ่านอย่างเดียวใน SQL Server 2016 AG

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

อาการ

สมมติว่าคุณมีแบบจําลองรองแบบอ่านอย่างเดียวใน Microsoft SQL Server 2016 กลุ่มให้บริการ AlwaysOn (AG) เมื่อคุณใช้บทบาทแอปพลิเคชัน SQL Server ในแบบจําลองเป็นครั้งแรก แอปพลิเคชันจะทํางานตามที่คาดไว้ อย่างไรก็ตาม เมื่อคุณใช้อีกครั้ง บทบาทแอปพลิเคชันอาจล้มเหลว และคุณจะได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

หมายเหตุ

msg 3961, ระดับ 16, สถานะ 1, หมายเลขบรรทัด
ทรานแซคชันการแยกสแนปช็อตล้มเหลวในฐานข้อมูล '<DatabaseName>' เนื่องจากวัตถุที่เข้าถึงโดยคําสั่งถูกปรับเปลี่ยนโดยคําสั่ง DDL ในทรานแซคชันพร้อมกันอื่นตั้งแต่เริ่มต้นทรานแซคชันนี้ จึงไม่ได้รับอนุญาต เนื่องจากเมตาดาต้าไม่มีการกําหนดเวอร์ชัน การอัปเดตข้อมูลเมตาพร้อมกันอาจนําไปสู่ความไม่สอดคล้องกันได้หากผสมกับการแยกสแนปช็อต

การแก้ปัญหา

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

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

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

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

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

สถานะ

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

การอ้างอิง

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