sql >> Databasteknik >  >> RDS >> Sqlserver

Hur kan jag infoga mer än 8000 tecken i en VARCHAR(MAX) kolumn med ExecuteNonQuery?

REPLICATE returnerar inmatningstypen oberoende av senare tilldelning. Det är irriterande, men för att undvika tyst trunkering, försök:

SET @x = REPLICATE(CONVERT(VARCHAR(MAX), 'a'), 10000);

Detta beror på att SQL Server utför REPLICATE operation innan den överväger vad du tilldelar den till eller hur många tecken du försöker utöka den till. Den bryr sig bara om inmatningsuttrycket för att bestämma vad den ska returnera, och om inmatningen inte är en maxtyp antar den att den är tänkt att rymmas inom 8 000 byte. Detta förklaras i Books Online :



  1. Hur infogar man array i mysql med PDO och bindParam?

  2. Hämta N:te element i en array som returnerar från funktionen string_to_array().

  3. php-funktionen returnerar inte alla resultat från en MySQL-fråga i en foreach

  4. Hur laddar man en bild från SQL Server till bildrutan?