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 usar la restricción CHECK de SQL Server para cumplir una condición booleana

Cómo usar la restricción CHECK de SQL Server para cumplir una condición booleana

Resumen: en este tutorial, aprenderás a usar la restricción CHECK de SQL Server para hacer cumplir una condición booleana.

Ver artículo completo
Qué es un trigger o desencadenador y cómo crearlo?

Qué es un trigger o desencadenador y cómo crearlo?

En este artículo veremos ¿qué es un trigger? es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos.

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