Buenas,
Muchas gracias por las respuestas. Al fin encontré lo que estaba buscando. Las
tablas temporales nunca me funcionaron muy bien. Prefiero crear tablas
concretas durante el tiempo que vaya a estar usando el procedure o hacer alguna
otra cosa. Para los que les quede la duda va la resolución
set @myquery = N'SELECT @q = count(*) from ' + @full_err_table_name
EXEC sp_executesql
@query = @myquery,
@params = N'@q INT OUTPUT',
@q = @q OUTPUT
Con el procedure " sp_executesql " puedo pasarle ese parámetro @q OUTPUT para
poner ahí la salida de la consulta.
Espero les sirva
Aníbal
Sebastián Santisi <[EMAIL PROTECTED]> escribió: Hola, Aníbal;
Aníbal Lovaglio wrote:
> Gracias Javier,
> sí, en realidad eso ya lo había probado, pero con eso lo que no pude
> hacer es que los resultados queden en alguna variable. Es decir, eso me
> solucionaba una parte del problema, pero lo que no podía hacer era
> averiguar en ejecución la cantidad de filas de las tablas como con
>
> "select @q = (select count(*) from @variable)"
>
> y consultas similares, como para elegir algunos campos.
Podés usar tablas temporales para esto:
DECLARE @q INT;
DECLARE @table VARCHAR(255);
SELECT @table = 'Saraza'; -- Este sería parámetro del procedimiento.
CREATE TABLE #Temp ( q INT );
EXEC('INSERT INTO #Temp (q) (SELECT COUNT(*) FROM ' + @table + ')');
SELECT @q = q FROM #Temp;
DROP TABLE #Temp;
PRINT @q;
No sé si sea lo más prolijo, pero funciona.
Me parece que no tenés otra manera de meter a @q adentro del scope del
EXEC; por lo que usar una tabla como almacenamiento intermedio te sirve.
Saludos;
Sebastián Santisi
[EMAIL PROTECTED]
> O sea, esto era otra cosa que necesitaba hacer en el medio para contar
> algunas cosas y de esa manera no podía obtener después los valores en
> variables. Si resuelvo esa parte estoy hecho.
>
> Aníbal
>
>
> */Javier Persico /* escribió:
>
> Te recomiendo que armes una cadena de texto y luego la ejecutes de
> la siguiente forma:
>
> DECLARE @v_cSql as nVARCHAR(4000)
> set @v_cSql = 'select * from' + @variable
> exec sp_executesql @v_cSql
> Saludos!
> El día 19/11/07, *Aníbal Lovaglio*
> > escribió:
>
> Buenas a todos
> Estoy trabajando con unas bases en SQL Server 2000 y tengo un
> problema que hace algunos días que no puedo resolver. Quiero
> hacer un procedure que reciba como argumentos, los nombres de un
> par de tablas y una columna, y con eso hacer varias operaciones.
>
> Más puntualmente, las tablas tienen campos de texto que, para
> variar, están rotos, y levanté una tabla de correcciones para
> pasarles a las columnas de texto con alguna sentencia update que
> ya estuve probando y funciona, pero son muchos campos y de
> distintas tablas que tengo que corregir, por lo que tener que
> estar cambiando el código del procedure realmente no es la
> opción más sana, y claramente no sería una buena práctica de
> programación.
>
> La pregunta concretamente es si alguien sabe como, con una
> variable de un procedure conteniendo u obtenida a partir del
> nombre de la tabla, dentro del procedure puedo hacer un
> "select * from @variable"
>
>
> Desde ya muchas gracias
> Aníbal
>
> ------------------------------------------------------------------------
>
> Compartí video en la ventana de tus mensajes y también tus fotos
> de Flickr.
> Usá el Nuevo Yahoo! Messenger versión Beta.
> Visitá http://ar.beta.messenger.yahoo.com/
>
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
>
>
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
>
>
> ------------------------------------------------------------------------
>
> Los referentes más importantes en compra/venta de autos se juntaron:
> Demotores y Yahoo!. Ahora comprar o vender tu auto es más fácil.
> Visitá http://ar.autos.yahoo.com/
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista de correo Programacion.
> [email protected]
> http://listas.fi.uba.ar/mailman/listinfo/programacion
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion
---------------------------------
Los referentes más importantes en compra/venta de autos se juntaron:
Demotores y Yahoo!.Ahora comprar o vender tu auto es más fácil.
Visitá http://ar.autos.yahoo.com/_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion