sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo puedo insertar más de 8000 caracteres en una columna VARCHAR (MAX) con ExecuteNonQuery?

REPLICATE devuelve el tipo de entrada independientemente de la asignación posterior. Es molesto, pero para evitar el truncamiento silencioso, intente:

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

Esto se debe a que SQL Server realiza REPLICATE operación antes de que considere a qué lo está asignando o a cuántos caracteres está tratando de expandirlo. Solo se preocupa por la expresión de entrada para determinar qué debe devolver, y si la entrada no es de tipo máximo, asume que debe caber dentro de los 8000 bytes. Esto se explica en Books Online :