Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Mon champ VARCHAR(MAX) se plafonne à 4000 ; ce qui donne?

Corrigé...

La table peut être varchar(max) mais les valeurs que vous attribuez ne sont que nvarchar (4000)

C'est-à-dire

maxcolumn = maxvalues + smallstring1 + **unicodestring** + smallstring3 + smallstring4 ...

Le côté droit restera à nvarchar(4000) maximum en raison de la priorité des types de données. nvarchar> varchar. Lorsqu'il est affecté à la colonne max, il tronque

Vous devrez vous assurer que toutes les valeurs à droite à varchar

C'est toujours comme la division entière... ce qui m'a dérouté était la limite de 4000 quand varchar vaut 8000... cela implique nvarchar quelque part.

Pour Nvarchar(Max) je n'obtiens que 4000 caractères dans TSQL ?