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

Come memorizzare una stringa var maggiore di varchar(max)?

Seriamente - VARCHAR(MAX) può memorizzare fino a 2 GB di dati, non solo 8000 caratteri.....

Prova questo:

DECLARE @myVar VARCHAR(MAX) = ''

DECLARE @ix INT = 1

WHILE @ix < 1000
BEGIN
    set @myVar = @myVar + CAST('bla bla bla' AS VARCHAR(MAX))
    SET @ix = @ix + 1
END

SELECT DATALENGTH(@myvar)

Questo restituirà un valore più alto di 8000 caratteri dopo 1000 iterazioni.

Il punto è:se stai usando varchar(max) , devi assicurarti di trasmettere sempre tutte le tue stringhe in varchar(max) esplicitamente - come ho fatto in questo esempio. In caso contrario, SQL Server ricadrà su varchar "normale". elaborazione, e questo è effettivamente limitato a 8000 caratteri....