1
เหตุใดจึงลบคุณสมบัติเอกลักษณ์ในคอลัมน์ไม่ได้รับการสนับสนุน
ฉันได้อ่านแล้วว่าหลังจาก SQL Server 2000 ความสามารถในการ "ยกเลิกการระบุตัวตน" คอลัมน์ข้อมูลประจำตัวจะถูกลบออก และนี่คือ "โดยการออกแบบ" (ไม่ใช่แค่คุณสมบัติที่ขาดหายไป) นี่คือตัวอย่างที่ผมพบในบล็อกหนึ่ง มันเกี่ยวข้องกับการปรับปรุงตารางระบบ (และความสามารถนั้นถูกลบหลังจาก SQL Server 2000) ฉันเข้าใจว่าการทำเช่นนี้ผ่านตารางระบบไม่ใช่ความคิดที่ดี ฉันแค่สงสัยว่าทำไมคุณสมบัติที่จะทำเช่นนี้ไม่ได้อยู่ที่อื่น การหลีกเลี่ยงสิ่งนี้จะทำให้ฉันต้องทำงานเป็นจำนวนมาก (การคัดลอกแถวหลายร้อยล้านแถวไปยังตารางใหม่ในสภาพแวดล้อมที่ไม่หยุดทำงาน) ดังนั้นฉันคิดว่าฉันจะถาม "ทำไม" มีอะไรเปลี่ยนแปลงใน SQL Server 2005 และรุ่นที่ใหม่กว่าซึ่งทำให้สิ่งนี้เลว หรือว่ามันแย่เสมอและไม่เพิ่งล็อค? "แนวปฏิบัติที่ดีที่สุด" (หรือหลักการที่คล้ายกัน) ใดที่จะถูกละเมิดโดยทำให้คอลัมน์ข้อมูลประจำตัวเป็นคอลัมน์ปกติอีกครั้ง - อัปเดตเพื่อตอบคำขอ "ทำไมฉันถึงทำแบบนี้": นี่เป็นบทสรุประดับสูงมาก: ฉันจะเริ่มเพิ่มพาร์ติชันในตารางของฉัน (เพื่อให้ฉันสามารถเก็บถาวร / ล้างข้อมูลเก่า) นั่นคือทั้งหมดที่ง่าย แต่บางครั้งฉันจำเป็นต้องย้ายระเบียนไปยังพาร์ติชันที่แตกต่างกันดังนั้นจึงไม่ถูกลบออก (เมื่อพาร์ติชันเกิดขึ้นสำหรับการเก็บถาวร / ลบ) (ฉันมีการแบ่งคอลัมน์เพิ่มขึ้น 2 เพื่อให้มีพื้นที่เสมอในการย้ายแถวไปยังพาร์ติชันอื่น) แต่ถ้าคอลัมน์การแบ่งเป็นคอลัมน์ข้อมูลส่วนตัวฉันต้องลบและใส่ค่าใหม่อีกครั้ง (ไม่มีทางที่จะอัพเดทค่าของคอลัมน์ข้อมูลประจำตัว) ซึ่งทำให้เกิดปัญหากับการจำลองแบบ …