nchar e nvarchar (Transact-SQL)

Tipi di dati stringa che rappresentano dati UNICODE a lunghezza fissa (nchar) o variabile (nvarchar) e utilizzano il set di caratteri UNICODE UCS-2.

  • nchar [ ( n ) ]
    Dati di tipo stringa a lunghezza fissa Unicode. n definisce la lunghezza della stringa e deve essere un valore compreso tra 1 e 4.000. Le dimensioni di archiviazione sono di due volte n byte. Quando la tabella codici delle regole di confronto utilizza caratteri a doppio byte, le dimensioni di archiviazione risultano comunque pari a n byte. A seconda della stringa di caratteri, le dimensioni di archiviazione di n byte possono corrispondere a meno del valore specificato per n. I sinonimi di ISO per il tipo di dati nchar sono national char e national character.

  • nvarchar [ ( n | max ) ]
    Dati di tipo stringa a lunghezza variabile Unicode. n definisce la lunghezza della stringa e può essere un valore compreso tra 1 e 4.000. max indica che le dimensioni massime dello spazio di archiviazione sono 2^31-1 byte (2 GB). Le dimensioni di archiviazione, espresse in byte, sono pari al doppio della lunghezza effettiva dei dati immessi + 2 byte. I sinonimi di ISO per il tipo di dati nvarchar sono national char varying e national character varying.

Osservazioni

Se n viene omesso nell'istruzione di definizione dei dati o di dichiarazione di variabili, la lunghezza predefinita è 1. Se n viene omesso con la funzione CAST, la lunghezza predefinita è 30.

Utilizzare nchar se le dimensioni delle voci della colonna sono pressoché simili.

Utilizzare nvarchar se le dimensioni delle voci della colonna variano in modo considerevole.

sysname è un tipo di dati di sistema definito dall'utente equivalente dal punto di vista funzionale a nvarchar(128), anche se non ammette valori Null. sysname viene utilizzato per fare riferimento ai nomi di oggetti di database.

Agli oggetti in cui è utilizzato il tipo di dati nchar o nvarchar vengono assegnate le regole di confronto predefinite del database, a meno che non vengano assegnate regole di confronto specifiche tramite la clausola COLLATE.

Per i tipi di dati nchar e nvarchar l'opzione SET ANSI_PADDING è sempre impostata su ON. L'opzione SET ANSI_PADDING OFF non è valida per i tipi di dati nchar o nvarchar.