SQL Server - Consulta excede 4000 caracteres (nvarchar(max))

   
Vista:

Consulta excede 4000 caracteres (nvarchar(max))

Publicado por Cynthia (2 intervenciones) el 23/09/2013 19:12:32
Buenas tardes,


Tengo una consulta dinámica en sql Server 2008 (armada en un nvarchar y ejecutada luego con un exec), el tema es que como es dinámica, los campos de la consulta son dinámicos también, y el script completo excede los 4000 caracteres....Que puedo hacer en ese caso? Hay alguna otra forma o tipo de dato que pueda utilizar para armar el script dinámico?

Gracias de antemano por la urgente y valiosa ayuda.

Atte,
Cynthia
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias Islas Gonzalez

Consulta excede 4000 caracteres (nvarchar(max))

Publicado por Isaias Islas Gonzalez (3181 intervenciones) el 23/09/2013 20:58:13
Si

1.- Deja de utilizar el EXEC() antiguo y cambia por EXECUTE SP_EXECUTESQL
2.- Utiliza un NAVARCHAR(MAX), que acepta hasta 2GB en su texto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta excede 4000 caracteres (nvarchar(max))

Publicado por Cynthia (2 intervenciones) el 23/09/2013 21:48:10
Utilicé el nvarchar(max) para declarar la variable que tiene el query dinámico, si le hago un print del len() me retorna 4000, si imprimo el contenido de la variable me retorna el query cortado :S
probé con esa instrucción (en lugar del exec) pero genera el mismo resultado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias Islas Gonzalez

Consulta excede 4000 caracteres (nvarchar(max))

Publicado por Isaias Islas Gonzalez (3181 intervenciones) el 24/09/2013 18:08:26
Debes tener en claro que los resultados mostrados en el ANALIZADOR DE CONSULTAS tiene un limite por default, ¿quieres cambiarlo?

-> Query -> Options -> Text

Y tanto en TEXT como en GRID, debes especificar, cuantos caracteres has de desplegar en el analizador de consultas.

¿me explico?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta excede 4000 caracteres (nvarchar(max))

Publicado por jams (75 intervenciones) el 08/11/2013 16:51:07
Lo que tienes que hacer es un casteo de tu variable a varchar(max)

Te muestro un ejemplo


DECLARE @varstr VARCHAR(MAX);
SET @varstr = REPLICATE(CAST('C' AS VARCHAR(MAX)),11000);
SELECT LEN(@varstr) Lenvarstr;
select @varstr

en el ejemplo anterior defino una variable como varchar(max)

despues asigno 11000 letras C

Obtengo la longitud de la variable que es 11000

y Finalmente obtengo el contenido de la variable

La clave es hacer el caste de tu variable a varchar(Max)


Saludos y suerte

PD NO siempre lo que se dice tiene fundamento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar