28% de descuento del curso en SQL Server

Estrada Web Group Estrada Web Group
Tipos de datos NCHAR de
Estrada Web Group
Estrada Web Group
Estrada Web Group Estrada Web Group
Calificar:
02 septiembre SQL

Tipos de datos NCHAR de SQL Server

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:

Cargando...
Descarga el código fuente

Obten el código del sistema de gestión de proyectos.

Shape