SQL Server - Problemas al asignar a variables

 
Vista:

Problemas al asignar a variables

Publicado por FAUSTO TELLEZ (3 intervenciones) el 02/07/2012 19:42:31
Buenas tardes, me eh topado con un problema que no le eh encontrado solucion, tengo un query bastante grande es de 1810 lineas, en este query hago varios insert, varios update, aprox en la linea 1100 tengo el siguiente codigo

SET @puesto =( SELECT CONVERT(VARCHAR(15),puesto)
FROM plazas
WHERE compania = @cia_origen
AND trabajador = @trabajador)

SET @plaza =( SELECT CONVERT(INT,plaza)
FROM plazas
WHERE compania = @cia_origen
AND trabajador = @trabajador)

pero al querer utilizar las variables (@puesto,@plaza) no me trae los datos, cabe mencionar que es 100% seguro que la consulta trae datos, ya que haciendo la misma consulta en un query diferente si me asigna los datos en las variables, pero cuando lo vuelvo a pasar al query enorme no. Esto me genera problemas ya que con esas variables yo tengo que hacer varios Insert, O si termino en ese momento el query y dejo el select solo, si me trae los datos, pero cuando lo asigno, no me lo pasa a las variables.

Ojala que me puedan ayudar, realmente me urge ya que llevo varios dias cambiando la forma de hacer esta parte pero me sigue el mismo resultado, podra ser algo de memoria que ya no tiene espacio para guardar los datos o algo por el estilo?
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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Problemas al asignar a variables

Publicado por Isaias (4558 intervenciones) el 03/07/2012 17:31:28
Tienes un problema en la forma de asiganar el valor a las variables, veamos como de debe hacerse.

SELECT @puesto = CONVERT(VARCHAR(15),puesto)
FROM plazas
WHERE compania = @cia_origen
AND trabajador = @trabajador
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

Problemas al asignar a variables

Publicado por FAUSTO TELLEZ (3 intervenciones) el 03/07/2012 20:29:06
HOLA, muchas gracias por comentar, solo que de esa forma de asignar las variables tambien ya lo probe, y sigue el problema, ahora, el mismo procedimiento lo corro en otra bd con exactamente los mismos datos en en esta si corre sin problemas. Que podra ser?
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

Problemas al asignar a variables

Publicado por jams (93 intervenciones) el 03/07/2012 21:51:27
Debes tener especial cuidado con la inicializacion de las variables en las que estas asignando los valores que obtienes en tu consulta, es decir inicializalos de la siguiente manera

set @puesto=''
set @plaza=0

despues de cuidar esto, debes considerar que si el resultado de tu select no arroja encuentra ningun valor que cumplacon las condiciones entonces no habra un valor que asignar a las variables, puedes probar una parte de tu query asi

SELECT CONVERT(INT,plaza)
FROM plazas
WHERE compania = @cia_origen
AND trabajador = @trabajador

y verificando los valores de @cia_origen y @trabajador

y asi podras comprobar que esta pasando, me inclino por pensar que tu consultano esta regresando valores y por ende no tienes nada que asignar


Saludosy suerte
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

Problemas al asignar a variables

Publicado por FAUSTO TELLEZ (3 intervenciones) el 06/07/2012 00:28:21
Si tambien me paso por la mente que la consulta no me traia valores, pero sl dejar solo el select si me arroja resultado, ya cuando le pongo la variable @plaza y @ puesto y le doy el select @plaza o print @plaza y lo mismo con @puesto, no me lo asigna a las variables, esto es raro, porque en un respaldo de la base de datos, con el mismo problema si me corre excelente pero especificamente en esta base de datos no me asigna esos valores, por eso pienso que pueda ser algo de memoria, o alguna configuración
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