Forums Últimos mensajes - Powered by IBM
 

Ayuda con Query

01/11/2005 - 01:04 por Manuel Bernal | Informe spam
Hola Grupo, la intension de escribir es la siguiente tengo un Sp al cual le
mando un parametro de tipo String para incluirlo en un clausula IN de un
consulta pero como le mando el parametro de tipo String y el campo In es
numerico me marca un error de tipo de dato, para solucionar el problema hice
algo como esto
imaginemos que esta es la variables del SP
@IdProceso = '10, 6, 4, 9, 3, 16, 12, 11, 14, 13'

y este el codigo que ejecuta
SET @Query = 'SELECT IdIndicador, IdProceso ' +
'INTO ##TemTemporal02 ' +
'FROM RecDat056 ' +
'WHERE Estatus = 0 AND ' +
'IdProceso IN (' + RTRIM(@IdProceso) + ')'

EXEC(@Query)

asi no me marca error pero tuve que poner el resultado en una ##tmp(Global)
pero esto funciona para un usuario, pero si entran dos usuarios me marcar
error de que la tabla ya existe esto es para una pagina WEb ASP.NET alguien
podria ayudarme a encontrar una mejor forma de hacerlo utilzando una temporal
normal(#) o no se una función de usuario o en su defecto como hacer para la
cadena de datos de la clausula IN no marque error.

Saludos y Gracias


L.I. Manuel Bernal
 

Leer las respuestas

#1 Maxi \(MVP SQL\)
01/11/2005 - 01:34 | Informe spam
Estimado, si quieres hacer esto mismo te recomiendo este articulo muy
interesante:

http://www.sqlteam.com/item.asp?ItemID%6


-
[MS-MVP SQL SERVER]

"Manuel Bernal" escribió en el
mensaje news:
Hola Grupo, la intension de escribir es la siguiente tengo un Sp al cual
le
mando un parametro de tipo String para incluirlo en un clausula IN de un
consulta pero como le mando el parametro de tipo String y el campo In es
numerico me marca un error de tipo de dato, para solucionar el problema
hice
algo como esto
imaginemos que esta es la variables del SP
@IdProceso = '10, 6, 4, 9, 3, 16, 12, 11, 14, 13'

y este el codigo que ejecuta
SET @Query = 'SELECT IdIndicador, IdProceso ' +
'INTO ##TemTemporal02 ' +
'FROM RecDat056 ' +
'WHERE Estatus = 0 AND ' +
'IdProceso IN (' + RTRIM(@IdProceso) + ')'

EXEC(@Query)

asi no me marca error pero tuve que poner el resultado en una
##tmp(Global)
pero esto funciona para un usuario, pero si entran dos usuarios me marcar
error de que la tabla ya existe esto es para una pagina WEb ASP.NET
alguien
podria ayudarme a encontrar una mejor forma de hacerlo utilzando una
temporal
normal(#) o no se una función de usuario o en su defecto como hacer para
la
cadena de datos de la clausula IN no marque error.

Saludos y Gracias


L.I. Manuel Bernal

Preguntas similares