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

Hvordan gemmer man en streng var større end varchar(max)?

Seriøst - VARCHAR(MAX) kan gemme op til 2 GB data - ikke kun 8000 tegn.....

Prøv dette:

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)

Dette vil returnere en værdi højere end 8000 tegn efter 1000 gentagelser.

Pointen er:hvis du bruger varchar(max) , skal du sørge for altid at caste alle dine strenge til varchar(max) eksplicit - som jeg gjorde i dette eksempel. Ellers vil SQL Server falde tilbage til "almindelig" varchar behandling, og det er faktisk begrænset til 8000 tegn....




  1. Sådan opdeles række i mange rækker i postgresql

  2. MariaDB Server 10.0.33 nu tilgængelig

  3. Oprettelse af søgefunktionalitet med Laravel 4

  4. Shell Script med sqlplus og specialtegn på adgangskode