Serieus - VARCHAR(MAX)
kan tot 2 GB aan gegevens opslaan - niet alleen 8000 tekens.....
Probeer dit:
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)
Dit retourneert een waarde hoger dan 8000 tekens na 1000 herhalingen.
Het punt is:als je varchar(max)
. gebruikt , moet je ervoor zorgen dat je altijd cast al je strings naar varchar(max)
expliciet - zoals ik deed in dit voorbeeld. Anders zal SQL Server terugvallen op "gewone" varchar
verwerking, en dat is inderdaad beperkt tot 8000 tekens....