Một nvarchar
cột có thể lưu trữ bất kỳ dữ liệu Unicode nào. Một varchar
cột bị giới hạn ở mã hóa 8 bit. Một số người nghĩ rằng varchar
nên được sử dụng vì nó chiếm ít không gian hơn. Tôi tin rằng đây không phải là câu trả lời chính xác. Codepage không tương thích là một vấn đề, và Unicode là giải pháp cho các vấn đề về mã hóa. Với đĩa và bộ nhớ rẻ ngày nay, thực sự không có lý do gì để lãng phí thời gian với các trang mã nữa.
Tất cả các hệ điều hành và nền tảng phát triển hiện đại đều sử dụng Unicode trong nội bộ. Bằng cách sử dụng nvarchar
chứ không phải là varchar
, bạn có thể tránh thực hiện chuyển đổi mã hóa mỗi khi bạn đọc từ hoặc ghi vào cơ sở dữ liệu. Chuyển đổi mất thời gian và dễ xảy ra lỗi. Và khôi phục từ các lỗi chuyển đổi là một vấn đề không nhỏ.
Nếu bạn đang giao tiếp với một ứng dụng chỉ sử dụng ASCII, tôi vẫn khuyên bạn nên sử dụng Unicode trong cơ sở dữ liệu. Các thuật toán đối chiếu hệ điều hành và cơ sở dữ liệu sẽ hoạt động tốt hơn với Unicode. Unicode tránh các sự cố chuyển đổi khi giao tiếp với khác các hệ thống. Và bạn sẽ chuẩn bị cho tương lai. Và bạn luôn có thể xác nhận rằng dữ liệu của bạn bị giới hạn ở ASCII 7-bit cho bất kỳ hệ thống kế thừa nào mà bạn đang phải duy trì, ngay cả khi đang tận hưởng một số lợi ích của bộ lưu trữ Unicode đầy đủ.