Diferencia entre varchar y nvarchar en SQL Server

Por:ivancp, enviado 06 sep 2011
SQL Server dispone de varios tipos de datos, cada tipo de datos nos va servir para almacenar un dato que después podemos convertir en información, pero hay dos tipos de datos que generan dudas entre desarrolladores : VARCHAR y NVARCHAR: ¿cuál es la diferencia entre ambos tipos de datos?

VARCHAR es una abreviatura de cadena de caracteres de longitud variable (del inglés VARiable CHARacter). Puede almacenar una cadena de caracteres que puede ser tan grande como el tamaño de página de la tabla. El tamaño de una página de una tabla en SQL Server es 8.196 bytes, ninguna fila de una tabla en SQL Server puede ser más de 8.060 caracteres. Esto a su vez limita el tamaño máximo de un VARCHAR a 8.000 bytes.

NVARCHAR significa "casi" lo mismo, con la diferencia que se puede almacenar datos unicode, de ahí proviene la N (uNicode).

Y para que sirve Unicode? Si la columna donde almacenamos el texto es Unicode quiere decir que no tendremos problemas para guardar y recuperar caracteres que se usan en otros idiomas como el español (á é í ó ú ñ), pero con el español los problemas de visualización no son muy frecuentes, con el resto de idiomas es el problema (como el chino o japonés).

La diferencia principal entre los dos tipos de datos es la forma en que están almacenados. Cada carácter del tipo de dato VARCHAR se almacena en 8 bits (1 byte). Pero las cadenas NVARCHAR se almacenan en la base al estándar UTF-16 - 16 bits o dos bytes por carácter, eso quiere decir que con el tipo de dato NVARCHAR sólo podremos almacenar la mitad: 4000 caracteres.

Esta es ser la razón por la que muchos usuarios previeren VARCHAR (al saber la diferencia claro), con el objeto de ahorrar un poco de espacio. Sin embargo depende de nosotros cuando y donde usar la combinación de ambos tipos de datos.

Visto en
http://searchsqlserver.techtarget.com/t ... SQL-Server
http://es.wikipedia.org/wiki/Codificaci ... caracteres

Otros Artículos en esta sección

  • IF, IIF en SQL Server
    Es frecuente la pregunta: Es posible utilizar IF, IIF en una consulta de SQL server? Aquí explicamos las alternativas.
    Por: ivancp, 2011-09-03
  • Comparacion entre MySQL y SQL Server
    Hemos preparado una tabla de comparación para que vean las diferencias principales que hay entre los dos gestores de base de datos populares MySQL y SQL Server
    Por: ivancp, 2011-09-08
¿Alguna duda? Sientete libre de hacer tus pruntas en nuestro:
foro de Bases de datos »