Je suis nouveau dans le concept nvarchar(MAX)
. Combien de personnages contiendra-t-il?
la source
Je suis nouveau dans le concept nvarchar(MAX)
. Combien de personnages contiendra-t-il?
Max. La capacité est de 2 gigaoctets d'espace - vous regardez donc un peu plus d'un milliard de caractères de 2 octets qui rentreront dans un NVARCHAR(MAX)
champ.
En utilisant les nombres plus détaillés de l'autre réponse, vous devriez être en mesure de stocker
(2 ^ 31 - 1 - 2) / 2 = 1'073'741'822 double-byte characters
1 billion, 73 million, 741 thousand and 822 characters to be precise
dans votre NVARCHAR(MAX)
colonne (malheureusement, ce dernier demi-caractère est gaspillé ...)
Mise à jour: comme @MartinMulder l'a souligné: toute colonne de caractères de longueur variable a également une surcharge de 2 octets pour stocker la longueur réelle - j'ai donc dû soustraire deux octets de plus de la 2 ^ 31 - 1
longueur que j'avais précédemment stipulée - ainsi vous pouvez stocker 1 caractère Unicode de moins que J'avais réclamé avant.
VARCHAR(MAX)
, si vous n'avez pas besoin du support 2 octets pour les langues asiatiques, arabes ou cyrilliques. À utiliser(N)VARCHAR(x)
si vous savez qu'une chaîne ne sera jamais plus longue que x caractères (ne pas utiliserNVARCHAR(MAX)
pour un prénom - utilisezNVARCHAR(50)
ou tout ce qui a du sens pour vous)À partir de char et varchar (Transact-SQL)
la source
2 ^ 31-1 octets. Donc, un peu moins de 2 ^ 31-1 caractères pour varchar (max) et la moitié de celui pour nvarchar (max).
nchar et nvarchar
la source