sencillo, los valores enteros necesitan tener un convert a varchar en este caso quedaria algo como esto:
Código SQL:
Ver originalDECLARE @SQL NVARCHAR(MAX)
SET @SQL = 'INSERT into dbo.' + quotename(@NOMBRE_TABLA) + '(CLIENTE_CODIGO, CAJA_CODIGO, CAJA_NUMERO) VALUES ('
+ CONVERT(VARCHAR(20),@CLIENTE_CODIGO )+ CONVERT(VARCHAR, @CAJA_CODIGO) + CONVERT(VARCHAR(20),@CAJA_NUMERO) + ''')'
EXEC sp_executesql @SQL
aqui la pregunta, porque en unos si tienes el convert y en otros no????