Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Il mio campo VARCHAR(MAX) si sta chiudendo a 4000; cosa dà?

Corretto...

La tabella può essere di varchar(max) ma i valori che assegni sono solo nvarchar (4000)

Cioè,

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

Il lato destro rimarrà a nvarchar(4000) massimo a causa della precedenza del tipo di dati. nvarchar> varchar. Quando viene assegnato alla colonna max, viene troncato

Dovrai garantire tutti i valori a destra su varchar

È ancora come la divisione intera... quello che mi ha confuso era il limite di 4000 quando varchar è 8000... questo implica nvarchar da qualche parte.

Per Nvarchar(Max) ricevo solo 4000 caratteri in TSQL?