Asignación de variables

08/06/2004 - 02:29 por Arturo Torres | Informe spam
Amigos tengo un pequeño y gran problema a la vez es el
siguiente tengo mi procedure con una variable la cual
recibe una instruccion

SELECT @V_CADENA = "SELECT @V_NUMREG = STR(COUNT(*))
FROM " + @V_NOMBRE_BD + ".dbo.agencia"+ @V_SUCAGE_SRV + "
WHERE (teti ='"+ @V_TETI + "' OR TetiAutor ='" + @V_TETI
+ "') AND fecsistema ='"+ @V_STR_AYER +"'"

lo que quiero es que la ejecución de esta cadena quede
almacenada en otra variable he probado las siguientes
alternativas pero sin exito

SET @V_NUMREG = EXEC (@V_CADENA)
SELECT @V_NUMREG = EXEC (@V_CADENA)
EXEC @V_NUMREG = @V_CADENA

Tambien intente lo siguiente

SELECT @V_NUMREG = STR(COUNT(*)) FROM DiariosFinesse0604
WHERE teti = 'C4EF'

pero revienta cuando hago el where, si alguien me pudiese
ayudar le estaré muy agradecido

Saludos
 

Leer las respuestas

#1 Miguel Egea
08/06/2004 - 14:30 | Informe spam
Veamos esto puedes hacerlo con un procedimiento almacenado público generado
en master y que se ejecutará en el 'entorno' de la bbdd en la que estés, así
evitas tener que hacer código dinamico.
Si de todas formas quieres hacerlo puedes hacer así :
declare @v_cadena nvarchar(200)
declare @v_nombre_bd nvarchar(100)
declare @v_numreg int
set @v_nombre_bd='master'
SELECT @V_CADENA = 'SELECT @V_NUMREG = COUNT(*) FROM ' + @V_NOMBRE_BD +
'.dbo.sysobjects'
exec sp_executesql @v_cadena,N'@v_numreg int output',@v_NumReg output
select @v_numreg


-

Miguel Egea Gómez
Webmaster de PortalSQL

(lo de online sobra)
Brigada Anti-Cursores
Microsoft SqlServer M.V.P.

"Arturo Torres" escribió en el mensaje
news:1976d01c44cef$b4aeb620$
Amigos tengo un pequeño y gran problema a la vez es el
siguiente tengo mi procedure con una variable la cual
recibe una instruccion

SELECT @V_CADENA = "SELECT @V_NUMREG = STR(COUNT(*))
FROM " + @V_NOMBRE_BD + ".dbo.agencia"+ @V_SUCAGE_SRV + "
WHERE (teti ='"+ @V_TETI + "' OR TetiAutor ='" + @V_TETI
+ "') AND fecsistema ='"+ @V_STR_AYER +"'"

lo que quiero es que la ejecución de esta cadena quede
almacenada en otra variable he probado las siguientes
alternativas pero sin exito

SET @V_NUMREG = EXEC (@V_CADENA)
SELECT @V_NUMREG = EXEC (@V_CADENA)
EXEC @V_NUMREG = @V_CADENA

Tambien intente lo siguiente

SELECT @V_NUMREG = STR(COUNT(*)) FROM DiariosFinesse0604
WHERE teti = 'C4EF'

pero revienta cuando hago el where, si alguien me pudiese
ayudar le estaré muy agradecido

Saludos

Preguntas similares