SQL Server - NO FUNCIONA

 
Vista:

NO FUNCIONA

Publicado por Andres (3 intervenciones) el 02/08/2007 21:15:34
Por favor alguien puede indicarme como guardar el resultado del Openquery en el archivo temporal #tmp ?... no se que es lo que estoy haciendo mal, por favor si es con ejemplo de codigo se lo voy a agradecer.

Me muestra el resultado del Openquery, pero el #tmp me lo muestra vacio

Recien empiezo en esta herramienta.

GRACIAS

--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
DECLARE @nArt integer ;
DECLARE @cad1 varchar(1000);
DECLARE @cad2 varchar(1000);

-- Crea Temporal O.C.
CREATE TABLE #Tmp(art integer,cant integer)

SET @nArt = 62246 ;
SET @cad1 = 'SELECT art,cant FROM articulosn
WHERE articulo ='+str(@nArt)
SET @cad2 = 'select #tmp.* from OPENQUERY(dbf_dos,'''+@cad1+''') as #tmp'

EXECUTE (@cad2)

select * from #tmp

--Elimina Temporales---------------------------------
DROP TABLE #tmp ;
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
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

RE:NO FUNCIONA

Publicado por Isaias (3308 intervenciones) el 03/08/2007 00:21:12
Primero: Cambia tus variables para el codigo T-SQL por NVARCHAR
Segundo: Cambia tu EXECUTE (CADENA) por EXECUTE SP_EXECUTE @TuCadena
Tercero: Para crear una tabla directamente de un SELECT, la sintaxis correcta es:

SELECT * INTO #tmp FROM OPENQUERY(dbf_dos,'''+@cad1+'''

Cuarto: NO puedes crear tablas temporales en un execute dinamico, se perderia.

Quinto: Las tablas temporales se eliminan AUTOMATICAMENTE al desconectar la sesion que las creo.

Saludos
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

RE:NO FUNCIONA

Publicado por Andres (3 intervenciones) el 03/08/2007 16:06:12
Gracias por los tips, me han servido, pero creo que me has mostrado que debo estar por el camino equivocado, necesito capturar lo del Openquery y guardarlo en una tabla temporal para poder recorrerla y en base a cada registro recorrido utilizar otro openquery que me devuelva los registros correspondiente y guardarlo en una segunda tabla temporal y asi una y otra vez segun mi necesidad.

Si tienes un ejemplo te lo agradeceria
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

RE:NO FUNCIONA

Publicado por Andres (3 intervenciones) el 03/08/2007 19:02:47
Gracias por los tips, me han servido, pero creo que me has mostrado que debo estar por el camino equivocado, necesito capturar lo del Openquery y guardarlo en una tabla temporal para poder recorrerla y en base a cada registro recorrido utilizar otro openquery que me devuelva los registros correspondiente y guardarlo en una segunda tabla temporal y asi una y otra vez segun mi necesidad.

Si tienes un ejemplo te lo agradeceria
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

RE:NO FUNCIONA

Publicado por Isaias (3308 intervenciones) el 04/08/2007 00:00:05
Andres

El resultado del OPENQUERY, es un RECORDSET (Arreglo de registros), incluso, puedes hacer JOIN con el resultado del openquery, NO necesitas almacenar su resultado en una tabla temporal para "recorrerla" (SQL Server, no fue diseñado para esto) y actualizar una tercera tabla.

Toma este punto de vista, El resultado de tu OPENQUERY, es un tabla, temporal, si quieres verlo asi.
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