SQL

Tipo de datos NVARCHAR de SQL Server

Estrada Web Group
Estrada Web Group
Tipo de datos NVARCHAR de SQL Server

Resumen: en este tutorial, aprenderás a usar el tipo de datos NVARCHAR de SQL Server para almacenar datos de cadenas Unicode de longitud variable.

Introducción al tipo de datos NVARCHAR de SQL Server

El tipo de datos NVARCHAR de SQL Server se utiliza para almacenar datos de cadenas Unicode de longitud variable. A continuación se muestra la sintaxis de NVARCHAR:

NVARCHAR(n)

En esta sintaxis, n define la longitud de la cadena que va de 1 a 4000. Si no se especifica la longitud de la cadena, su valor predeterminado es 1.

Otra forma de declarar una columna NVARCHAR es usar la siguiente sintaxis:

NVARCHAR(max)

En esta sintaxis, max es el tamaño máximo de almacenamiento en bytes, que es 2^31-1 bytes (2 GB).

En general, el tamaño de almacenamiento real en bytes de un valor NVARCHAR es dos veces el número de caracteres ingresados más 2 bytes.

Los sinónimos ISO de NVARCHAR son NATIONAL CHAR VARYING o NATIONAL CHARACTER VARYING, por lo que puedes usarlos indistintamente en la declaración de variables o la definición de datos de columna.

VARCHAR contra NVARCHAR

La siguiente tabla ilustra las principales diferencias entre los tipos de datos VARCHAR y NVARCHAR:

DESCRIPCIÓN VARCHAR NVARCHAR
Tipo de datos de carácter Caracteres no Unicode de longitud variable Caracteres Unicode y no Unicode de longitud variable, como japonés, coreano y chino.
Longitud máxima Hasta 8,000 caracteres Hasta 4000 caracteres
Tamaño de caracteres Ocupa 1 byte por caracter Ocupa 2 bytes por carácter Unicode/no Unicode
Tamaño de almacenamiento Longitud real (en bytes) 2 veces la longitud real (en bytes)
Uso Se usa cuando la longitud de los datos es variable o las columnas de longitud variable y si los datos reales siempre son mucho menores que la capacidad Debido únicamente al almacenamiento, se usa solo si necesita compatibilidad con Unicode, como los caracteres kanji japonés o hangul coreano.

Ejemplos de NVARCHAR de SQL Server

La siguiente declaración crea una nueva tabla que contiene una columna NVARCHAR:

CREATE TABLE test.sql_server_nvarchar (
    val NVARCHAR NOT NULL
);

En este ejemplo, la longitud de cadena de la columna NVARCHAR es uno por defecto.

Para cambiar la longitud de la cadena de la columna val, se debe utilizar la sentencia ALTER TABLE ALTER COLUMN:

ALTER TABLE test.sql_server_Nvarchar
ALTER COLUMN val NVARCHAR (10) NOT NULL;

La siguiente declaración inserta una nueva cadena en la columna val de la tabla test.sql_server_nvarchar:

NVARCHAR unicode

La declaración funcionó como se esperaba porque el valor de la cadena tiene una longitud menor que la longitud de la cadena definida en la definición de la columna.

La siguiente declaración intenta insertar una nueva cadena de datos cuya longitud es mayor que la longitud de la cadena de la columna val:

NVARCHAR UNICODE

SQL Server regresa un error y finalizá la declaración:

String or binary data would be truncated.
The statement has been terminated.

Para encontrar el número de caracteres y el tamaño de almacenamiento en bytes de los valores almacenados en la columna NVARCHAR, utiliza las funciones LEN y DATALENGTH de la siguiente manera:

SELECT
    val,
    LEN(val) len,
    DATALENGTH(val) data_length
FROM
    test.sql_server_nvarchar;

En este tutorial, aprendiste a usar el tipo de datos NVARCHAR de SQL Server para almacenar datos Unicode de longitud variable en la base de datos.

Compartir artículo:

Más artículos geniales

¿Cómo borrar registros de una tabla de SQL Server con la instrucción DELETE?

¿Cómo borrar registros de una tabla de SQL Server con la instrucción DELETE?

En este tutorial de SQL Server, aprenderás a usar la instrucción DELETE de SQL Server para eliminar una o más filas de una tabla.

Ver artículo completo
Cómo eliminar una base de datos utilizando DROP DATABASE y SQL Server Management Studio

Cómo eliminar una base de datos utilizando DROP DATABASE y SQL Server Management Studio

Resumen: en este tutorial, aprenderás cómo eliminar una base de datos en una instancia de SQL Server utilizando la instrucción DROP DATABASE y SQL Server Management Studio.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla