SQL

Tipos de datos NCHAR de SQL Server

Estrada Web Group
Estrada Web Group
Tipos de datos NCHAR de SQL Server

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

Introducción del tipo de datos NCHAR de SQL Server

Para almacenar datos de cadenas de caracteres Unicode de longitud fija en la base de datos, utiliza el tipo de datos NCHAR de SQL Server:

NCHAR(n)

En esta sintaxis, n especifica la longitud de la cadena que va de 1 a 4000. El tamaño de almacenamiento de un valor NCHAR es dos veces n bytes.

Los sinónimos ISO para NCHAR son NATIONAL CHAR y NATIONAL CHARACTER, por lo tanto, puedes usarlos indistintamente.

De forma similar al tipo de datos CHAR, utiliza NCHAR para almacenar únicamente cadenas de caracteres de longitud fija. Si las longitudes de los valores de datos son variables, debes considerar usar el tipo de datos VARCHAR o NVARCHAR.

CHAR contra NCHAR

Las siguientes son las principales diferencias entre los tipos de datos CHAR y NCHAR

CHAR NCAHR
Almacene solo caracteres que no sean Unicode. Almacene caracteres Unicode en forma de caracteres UNICODE UCS-2.
Necesita 1 byte para almacenar un carácter Necesita 2 bytes para almacenar un carácter.
El tamaño de almacenamiento es igual al tamaño especificado en la definición de columna o declaración de variable. El tamaño de almacenamiento es igual al doble del tamaño especificado en la definición de columna o declaración de variable.
Almacena hasta 8000 caracteres. Almacena hasta 4000 caracteres.

Ejemplo de SQL Server NCHAR

La siguiente declaración crea una nueva tabla con una columna NCHAR:

CREATE TABLE test.sql_server_nchar (
    val NCHAR(1) NOT NULL
);

La siguiente instrucción INSERT inserta el carácter a (?) en japonés en la columna NCHAR:

INSERT INTO test.sql_server_nchar (val)
VALUES
    (N'?');

"Ten en cuenta que debes prefijar las constantes de la cadena de caracteres Unicode con la letra N. De lo contrario, SQL Server convertirá la cadena a la página de códigos predeterminada de la base de datos que puede no reconocer algunos caracteres Unicode determinados."

Si insertas una cadena de caracteres cuya longitud es mayor que la especificada en la definición de la columna, SQL Server emite un error y finaliza la instrucción.

Por ejemplo, la siguiente declaración intenta insertar una cadena con dos caracteres en la columna val de la tabla test.sql_server_nchar:

INSERT INTO test.sql_server_nchar (val)
VALUES
    (N'??');

SQL Server regresa el siguiente mensaje de error:

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

Para encontrar el número de caracteres y el número de bytes de los valores de la columna val, utiliza las funciones LEN y DATALENGTH de la siguiente manera:

SELECT
    val,
    len(val) length,
    DATALENGTH(val) data_length
FROM
    test.sql_server_nchar;

Resultado:

val len data_length
? 1 2

En este tutorial, aprendiste a usar el tipo de datos NCHAR de SQL Server para almacenar cadenas de caracteres Unicode de longitud fija en la base de datos.

Compartir artículo:

Más artículos geniales

¿Cómo insertar varios registros en un solo INSERT en SQL?

¿Cómo insertar varios registros en un solo INSERT en SQL?

En este tutorial, aprenderás cómo insertar varias filas en una tabla utilizando una sola instrucción INSERT de SQL Server. Insertar varios registros en una sentencia en SQL Server es una tarea común

Ver artículo completo
Cómo usar la función Coalesce de SQL Server para trabajar con valores NULL

Cómo usar la función Coalesce de SQL Server para trabajar con valores NULL

Resumen: en este tutorial, aprenderás cómo usar la función COALESCE de SQL Server para tratar los valores NULL en las consultas.

Ver artículo completo
Cómo usar FULL OUTER JOIN de SQL Server para consultar datos de dos o más tablas

Cómo usar FULL OUTER JOIN de SQL Server para consultar datos de dos o más tablas

Resumen: en este tutorial, aprenderás a usar FULL OUTER JOIN de SQL Server para consultar datos de dos o más tablas.

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