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

Hvordan kan jeg indsætte mere end 8000 tegn i en VARCHAR(MAX) kolonne med ExecuteNonQuery?

REPLICATE returnerer inputtypen uanset senere tildeling. Det er irriterende, men for at undgå tavs trunkering, prøv:

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

Dette skyldes, at SQL Server udfører REPLICATE handling, før den overvejer, hvad du tildeler den til, eller hvor mange tegn, du forsøger at udvide den til. Det bekymrer sig kun om input-udtrykket for at bestemme, hvad det skal returnere, og hvis input ikke er en max-type, antager det, at det er beregnet til at passe inden for 8.000 bytes. Dette er forklaret i Books Online :



  1. Hvordan kan jeg lave en primær nøgle som AUTOINCREMENT

  2. Se ferier med datamodellerens øjne

  3. Mysql-forespørgsel fungerer godt på workbench, men tager for lang tid i r

  4. PHP sqlsrv_connect til SQL Server:Der er opstået en netværksrelateret eller instansspecifik fejl under oprettelse af en forbindelse til SQL Server