ฐานข้อมูลของฉันหลายแห่งมีเขตข้อมูลที่กำหนดเป็น varchars นี่ไม่ได้เป็นปัญหามากนักตั้งแต่ฉันอาศัยและทำงานในอเมริกา (ภาษาเดียวที่มีอยู่คือ "อเมริกัน" อะแฮ่ม )
หลังจากทำงานกับฐานข้อมูลประมาณ 5 ปีฉันก็พบว่าในที่สุดฉันก็พบปัญหาเกี่ยวกับลักษณะที่ จำกัด ของเขตข้อมูล varchar และฉันต้องแก้ไขเขตข้อมูลของฉันเพื่อเก็บข้อมูลเป็น nvarchars หลังจากต้องทำการอัปเดตอีกครั้งในตารางการแปลงเขตข้อมูล varchar เป็น nvarchar ฉันเพิ่งคิดว่า - ทำไมเรายังคงทำเช่นนี้อยู่ ฉันตัดสินใจที่จะกำหนดเขตข้อมูลใหม่ทั้งหมดของฉันเป็น nvarchar แทน varchar ซึ่งเป็นสิ่งที่ฉันเรียนรู้ที่จะทำจากหนังสือเรียนเมื่อตอนที่ฉันอยู่โรงเรียนเมื่อ 10 ปีที่แล้ว
ในปี 2554 และมี SQL Server รุ่นใหม่เมื่อปีที่แล้ว ทำไมเรายังคงสนับสนุนประเภทข้อมูล varchar เมื่อเราสามารถ / ควรใช้ nvarchar แทน?
ฉันรู้ว่ามันมักจะเป็นที่ถกเถียงกันอยู่ว่า nvarchars เป็น "ใหญ่เป็นสองเท่า" เป็น varchars ดังนั้นการใช้พื้นที่เก็บข้อมูลอาจเป็นหนึ่งในการโต้แย้งสำหรับ maitaining varcars
อย่างไรก็ตามผู้ใช้ในปัจจุบันสามารถกำหนด nvarchars เพื่อจัดเก็บข้อมูลเป็น UTF-8 แทนค่าเริ่มต้น UTF-16 หากต้องการประหยัดพื้นที่จัดเก็บ สิ่งนี้จะช่วยให้การเข้ารหัส 8 บิตหากเป็นที่ต้องการเป็นหลักในขณะที่ให้ความมั่นใจว่าอักขระที่หายากขนาด 2-8 ไบต์ที่แทรกเข้าไปในฐานข้อมูลจะไม่ทำลายอะไรเลย
ฉันพลาดอะไรไปรึเปล่า? มีเหตุผลที่ดีหรือไม่ที่สิ่งนี้ไม่ได้เปลี่ยนแปลงในช่วง 15-20 ปีที่ผ่านมา?