ฉันสังเกตเห็นว่าเมื่อคุณตั้งค่าการจำลองแบบของทรานแซคชัน SQL Server จะตั้งค่าการจัดการช่วงข้อมูลประจำตัวเป็นคู่มือ สิ่งนี้หมายความว่าในฐานข้อมูลการสมัครสมาชิกของฉันเมื่อฉันพยายามที่จะแทรกระเบียนใหม่ลงในตารางที่มี PK เป็นคอลัมน์ข้อมูลประจำตัวมันจะทำให้ฉันมีข้อผิดพลาดและบอกว่ามันพยายามแทรก PK ของ "1", "2 "," 3 "ฯลฯ นี่เป็นเพราะค่าข้อมูลประจำตัวปัจจุบันสำหรับคอลัมน์ข้อมูลประจำตัวทั้งหมดของผู้สมัครสมาชิกจะได้รับการรีเซ็ตเป็นค่าเริ่มต้น (ปกติ 1) แทนที่จะอยู่ในสิ่งที่เป็นอยู่ของผู้เผยแพร่
ฉันเข้าใจว่าทำไม SQL Server ถึงทำเช่นนี้คุณควรปล่อยให้ตารางสมาชิกเป็นแบบอ่านอย่างเดียว อย่างไรก็ตามสถานการณ์ของฉันเป็นเรื่องแปลกนอกรีต - ฉันอัปเดตสมาชิกของฉันเป็นระยะ ๆ ผ่านการจำลองแบบทำการสำรองข้อมูลทันทีของฐานข้อมูลนั้นจากนั้นฉันต้องการทำการอัปเดตบางอย่างสำหรับผู้สมัครสมาชิกที่จะไม่ถูกผลักกลับไปยังผู้เผยแพร่ เมื่อฉันไปอัปเดตผู้สมัครสมาชิกอีกครั้งฉันจะคืนค่าฐานข้อมูลจากการสำรองข้อมูลก่อนหน้าและดึงการอัปเดตล่าสุด เนื่องจากฉันต้องการอัพเดตผู้สมัครสมาชิกระหว่างการอัพเดตเหล่านี้ ('deltas ชั่วคราว' ถ้าคุณต้องการ) ฉันต้องการคอลัมน์ข้อมูลประจำตัวในการทำงานและไม่รีเซ็ตเป็น 1 เมื่อทำซ้ำ
ฉันพยายามเปิดการจัดการช่วงข้อมูลเฉพาะตัวอัตโนมัติเมื่อตั้งค่าสิ่งพิมพ์ของฉัน แต่นั่นทำให้ฉันเกิดข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามเพิ่มตารางลงในสิ่งพิมพ์:
ข่าวสารเกี่ยวกับ 21231, ระดับ 16, สถานะ 1, กระบวนงาน sp_MSrepl_addarticle, บรรทัด 2243
การสนับสนุนช่วงข้อมูลเฉพาะตัวอัตโนมัติมีประโยชน์สำหรับสิ่งพิมพ์ที่อนุญาตให้มีการอัพเดตผู้สมัครสมาชิกเท่านั้น
มีวิธีใดบ้างที่ฉันสามารถแก้ไขปัญหานี้ได้ ฉันต้องการนำเสนอการจำลองแบบนี้ไปยัง SQL Server ราวกับว่าเป็นแบบอ่านอย่างเดียวในตอนท้ายสมาชิกเนื่องจากฉันไม่ได้วางแผนที่จะทำการอัปเดตที่จะถูกส่งกลับไปยังผู้เผยแพร่แต่ฉันต้องการทำการปรับปรุงชั่วคราวที่ จะถูกลบก่อนการจำลองแบบถัดไป
ฉันยังได้พิจารณาแล้วเห็นว่าการทำแบบจำลองภาพรวมอาจจะเป็นวิธีการที่เหมาะสมมากกว่าการทำแบบจำลองการทำธุรกรรมสำหรับรูปแบบการใช้ของฉัน แต่ปัญหาก็คือว่าการจำลองแบบ snapshot ต้องส่งยี้ทั้ง DBปรับปรุงทุกเดียว; เนื่องจากฉันวางแผนที่จะสำรองข้อมูลฐานข้อมูลทันทีหลังจากการจำลองแบบล่าสุดฉันไม่ควรต้องทำการถ่ายโอนทั้งหมดนั้นทุกครั้ง เพียงแค่การเปลี่ยนแปลงตั้งแต่ครั้งที่แล้ว
Is there any way I can get round this problem?
คุณต้องตั้งค่าคอลัมน์ข้อมูลประจำตัวไม่ใช่สำหรับการจำลองโดยใช้sys.sp_identitycolumnforreplicationสำหรับ sql server 2005 ขึ้นไป คุณไม่จำเป็นต้องทำการ resnapshot บทความของคุณเมื่อคุณเปลี่ยนคอลัมน์ข้อมูลประจำตัวเพื่อใช้ในการทำซ้ำ ไม่ต้องทำโดยใช้ GUI