lunes, 17 de agosto de 2020

Diferencias entre varchar y nvarchar en SQL Server

 ¿Cuál es la diferencia entre los dos, y cuán importante es la diferencia?


VARCHAR es la abreviación de variable-length character string.   Es una cadena de caracteres de texto que puede ser tan grande como el tamaño de página para la tabla de la base de datos. Los campos de tipo Varchar o NVarchar son de almacenamiento variable

El tamaño almacenado dependerá del valor que se quiere guardar, el número de caracteres sólo configura el tamaño máximo que este campo puede almacenar. 

Configuramos una tabla de la siguiente forma:

CampoVariable1 varchar(10),
CampoVariable2 nvarchar(10)

El tamaño almacenado dependerá del valor que se quiere guardar, el número de caracteres sólo configura el tamaño máximo que este campo puede almacenar. En el caso del CampoVariable1 el tamaño máximo será de 10 bytes, y en el caso del CampoVariable2 el tamaño máximo será de 20 bytes.

El tamaño de una página de tabla es 8.196 bytes, y no hay una fila de una tabla puede ser tener de 8.060 caracteres. Esto a su vez limita el tamaño máximo de un VARCHAR a 8000 caracateres

La "N" en NVARCHAR significa uNicode. Esencialmente, NVARCHAR no es más que un VARCHAR que soporta caracteres de dos bytes.  Lo que representara una longitud máxima de 4000 caracteres. Lo que significa tener la capacidad de almacenar caracteres especiales en este tipo de datos.  La diferencia clave entre los dos datos.

Resumamos las diferencias:
  1.          VARCHAR máxima longitud permitida: 8000 caracteres.  NVARCHAR máxima longitud permitida: 4000 caracteres.
  2.         VARCHAR almacena caracteres de un byte de tipo ASCII Extendido.  NVARCHAR Capacidad de almacenar caracteres de dos bytes.  Caracteres Unicode.
3.  Por lo anterior el almacenamiento en disco será el doble en NVARCHAR que VARCHAR.


2 comentarios:

Comenta cualquier duda o recomendatorio.