sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es la diferencia entre varchar y nvarchar?

Un nvarchar La columna puede almacenar cualquier dato Unicode. Un varchar La columna está restringida a una página de códigos de 8 bits. Algunas personas piensan que varchar debe usarse porque ocupa menos espacio. Creo que esta no es la respuesta correcta. Las incompatibilidades de la página de códigos son un dolor, y Unicode es la cura para los problemas de la página de códigos. Con discos y memorias baratos hoy en día, ya no hay razón para perder el tiempo jugando con las páginas de códigos.

Todos los sistemas operativos y plataformas de desarrollo modernos utilizan Unicode internamente. Usando nvarchar en lugar de varchar , puede evitar realizar conversiones de codificación cada vez que lea o escriba en la base de datos. Las conversiones toman tiempo y son propensas a errores. Y la recuperación de los errores de conversión no es un problema trivial.

Si está interactuando con una aplicación que usa solo ASCII, aún recomendaría usar Unicode en la base de datos. Los algoritmos de recopilación del sistema operativo y de la base de datos funcionarán mejor con Unicode. Unicode evita problemas de conversión al interactuar con otros sistemas Y te estarás preparando para el futuro. Y siempre puede validar que sus datos estén restringidos a ASCII de 7 bits para cualquier sistema heredado que tenga que mantener, incluso mientras disfruta de algunos de los beneficios del almacenamiento Unicode completo.