Tecnología

Inicio

Cómo importar datos a MS Access Uso de procedimientos almacenados de SQL

Cómo importar datos a MS Access Uso de procedimientos almacenados de SQL


Importación de datos a una base de datos Microsoft Access mediante procedimientos almacenados es un tema a menudo se pasa por alto. Si bien existen muchos recursos para importar datos de una base de datos en una base de datos Microsoft SQL Server, los datos se mueve a la inversa no es tan común. En esencia, un \ "servidor vinculado \" será el vehículo de elección para la importación de datos a la base de datos Access. A continuación, un procedimiento almacenado puede realizar fácilmente la importación y exportación libremente entre la base de datos de SQL Server y la base de datos Access.

Instrucciones

Configurar y probar el servidor vinculado

1 Conectar con el SQL Server y crear un nuevo servidor vinculado. Esto se puede hacer mediante la siguiente secuencia de comandos SQL, lo que creará un nuevo servidor gustado llamada \ "AccessDB. \" (El valor después de @datasrc es la ruta de acceso a la base de datos de acceso en el equipo que ejecuta SQL Server).

EXEC sp_addlinkedserver
@server = 'AccessDB',
@provider = 'Microsoft.Jet.OleDb.4.0',
@srvproduct = "Proveedor OLE DB para Jet ',
@datasrc = 'C: \ Path \ a \ Access \ BaseDatos.mdb'
IR

2 Pruebe el servidor vinculado mediante la selección de una tabla existente en la base de datos de acceso (esto es opcional). Por ejemplo, si hay una tabla llamada \ "Tabla 1 \" en la base de datos Access, la siguiente secuencia de comandos SQL seleccionará todos los datos de ella.

SELECCIONAR


DE OPENQUERY (AccessDB, 'SELECT FROM Tabla 1')

3 Si es necesario, puede eliminar el servidor vinculado mediante el procedimiento sp_dropserver.

EJECUTAR sp_dropserver 'AccessDB'

Importación de datos en la base de datos Access

4 Para importar datos a una tabla existente en la base de datos Access, debe utilizar la instrucción INSERT OPENQUERY (...) sintaxis. Por ejemplo, si la tabla de SQL Server se llama SrvTable y la tabla de Access se llama la Tabla 1 y las dos tablas contienen las mismas columnas, la siguiente secuencia de comandos SQL copiará los datos de la tabla de SQL Server en la tabla de Access.

INSERT OPENQUERY (AccessDB, 'SELECT

FROM Tabla 1')
SELECT FROM SrvTable

5 Si es necesario, también puede actualizar los datos existentes en la base de datos de acceso del SQL Server utilizando la sintaxis OPENQUERY UPDATE, como se ve a continuación.

ACTUALIZACIÓN OPENQUERY (AccessDB, 'SELECT * FROM Tabla 1')
SET Col1 = 'Testing ... "

6 También puede borrar los datos de la base de datos Access utilizando la sintaxis OPENQUERY ELIMINAR. (Tenga en cuenta las comillas simples escapado [ ''] dentro de la instrucción OPENQUERY.)

BORRAR OPENQUERY (AccessDB, 'SELECT * FROM Tabla1 DONDE Col1 =' 'Probando ...' '')

7 Por último, crear un procedimiento almacenado que utiliza cualquier combinación de los estados OPENQUERY para llevar a cabo su tarea de importación de datos. Por ejemplo, para copiar todos los registros de la tabla 1 SrvTable a la base de datos Access, a continuación, actualizar Col1 a \ "Probando ... \", utilice la siguiente secuencia de comandos SQL.

CREAR PROCEDIMIENTO CopyToTable1, BEGIN
INSERT OPENQUERY (AccessDB, 'SELECT FROM Tabla 1')
SELECT FROM SrvTable

ACTUALIZACIÓN OPENQUERY (AccessDB, 'SELECT * FROM Tabla 1')
SET Col1 = 'Testing ... "
FIN

Consejos y advertencias

  • servidores vinculados también se pueden crear dentro de un procedimiento almacenado, siempre y cuando tengan un nombre único
  • El controlador de base de datos Jet no está diseñado para alto rendimiento transacción o de gran volumen, por lo que no se recomienda para situaciones en las que el rendimiento es crítico.