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 <[EMAIL PROTECTED]>/* 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* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> 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] <mailto:[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