nchar y nvarchar (Transact-SQL)

Tipos de datos de cadena para datos Unicode de longitud fija, nchar, o longitud variable, nvarchar, y que utilizan el juego de caracteres UNICODE UCS-2.

  • nchar [ ( n ) ]
    Datos de cadena Unicode de longitud fija. n define la longitud de cadena y debe ser un valor comprendido entre 1 y 4.000. El tamaño de almacenamiento es dos veces n bytes. Si la página de códigos de la intercalación utiliza caracteres de doble byte, el tamaño de almacenamiento sigue siendo de n bytes. Dependiendo de la cadena de caracteres, el tamaño de almacenamiento de n bytes puede ser inferior al valor especificado por n. Los sinónimos de nchar en ISO son national char y national character.

  • nvarchar [ ( n | max ) ]
    Datos de cadena Unicode de longitud variable. n define la longitud de cadena y debe ser un valor comprendido entre 1 y 4.000. max indica que el tamaño de almacenamiento máximo es 2^31-1 bytes (2 GB). El tamaño de almacenamiento, en bytes, es dos veces la longitud real de los datos especificados + 2 bytes. Los sinónimos de nvarchar en ISO son national char varying y national character varying.

Comentarios

Cuando no se especifica el argumento n en una instrucción de definición de datos o de declaración de variable, la longitud predeterminada es 1. Cuando no se especifica n con la función CAST, la longitud predeterminada es 30.

Use nchar cuando sea probable que el tamaño de las entradas de datos de las columnas sea similar.

Use nvarchar cuando sea probable que el tamaño de las entradas de datos de las columnas varíe.

sysname es un tipo de datos definido por el usuario y suministrado por el sistema, que es funcionalmente equivalente a nvarchar(128), excepto que no acepta valores NULL. sysname se usa para hacer referencia a nombres de objetos de base de datos.

Los objetos que utilizan nchar o nvarchar se asignan a la intercalación predeterminada de la base de datos, a menos que se asigne una intercalación específica por medio de la cláusula COLLATE.

SET ANSI_PADDING siempre está en ON para nchar y nvarchar. SET ANSI_PADDING OFF no se aplica a los tipos de datos nchar ni nvarchar.