Sentencia Insert Into tabla IN tablaExterna

22/12/2003 - 10:56 por Mario Barro | Informe spam
Hola a todos/as;

Tengo una consulta contra un servidor SQL-Server que recupera una serie de
registros y pretendo insertarlo en otra tabla pero de Access.

Es decir, con un objeto ADO Connection establecco el proveedor para
trabajar con Sql-Server y la consulta queda así´.

INSERT INTO tablaAccess IN Path_bbdd_ExternaAccess.mdb
SELECT campo1, campo2, FROM tablaSqlServer

El problema es exclusivo en la clausula IN, ya que el resto está bien, los
campos son coincidentes, etc.

Como utilizo el proveedor para SQL-Server no me permite la insercción
directa en la tabla de acces que necesita otro proveedor.
¿Cómo puedo indicarle que la tabla externa es de access, es decir, un
ejemplo de como quedaría la sentencia en la zona IN indicando el proveedor
correcto.

Agradeceré cualquier sugerencia, ya que no he logrado sacarla.
Saludos
 

Leer las respuestas

#1 Rubén Vigón
22/12/2003 - 11:12 | Informe spam
Puedes utilizar «OpenDataSource», que te permite conectar a un origen de
datos mediante su proveedor OLEDB correspondiente; por ejemplo:

INSERT INTO OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data
Source="c:\archivo.mdb"')...Tabla (Campo) VALUES ('Hola mundo!')

También podrías utilizar «OpenDataSource» para hacer un SELECT; por ejemplo:

SELECT * FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data
Source="c:\archivo.mdb"')...Tabla

PD: Además de «OpenDataSource» dispones de «OpenRowset», de funcionamiento
similar. Échale un vistazo a ambas funciones en los BOL de SQL Server para
ver cuál se ajusta más a tus necesidades

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic

Preguntas similares