Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Sự khác biệt giữa varchar và nvarchar là gì?

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 đủ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. scope_identity so với Id_current

  2. Định cấu hình thư cơ sở dữ liệu trong SQL Server

  3. Một thủ tục được lưu trữ là gì?

  4. Giới thiệu về OPENJSON với các ví dụ (SQL Server)

  5. Sử dụng DateTime trong SqlParameter cho thủ tục được lưu trữ, lỗi định dạng