Come importare i dati in Microsoft Access che utilizza SQL stored procedure

November 12

Come importare i dati in Microsoft Access che utilizza SQL stored procedure


Importazione di dati in un database Microsoft Access utilizzando stored procedure è un argomento spesso trascurato. Mentre molte risorse esistono per importare i dati da un database di Access in un database Microsoft SQL Server, lo spostamento di dati da un'altra parte non è così comune. In sostanza, un \ "server collegato \" sarà il veicolo di scelta per l'importazione dei dati nel database di Access. Poi, una stored procedure in grado di eseguire facilmente importazioni e le esportazioni liberamente tra il database SQL Server e il database di Access.

istruzione

Configurare e verificare il server collegato

1 Connettersi a SQL Server e creare un nuovo server collegato. Questo può essere fatto utilizzando il seguente script SQL, che creerà un nuovo server piaciuto chiamato \ "AccessDB. \" (Il valore dopo @datasrc è il percorso del database di Access sul computer che esegue SQL Server.)

sp_addlinkedserver EXEC
@server = 'AccessDB',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@ srvproduct = 'OLE DB per Jet',
@datasrc = 'C: \ percorso \ a \ Access \ Database.mdb'
ANDARE

2 Testare il server collegato selezionando da una tabella esistente nel database di Access (questo è opzionale). Ad esempio, se vi è una tabella chiamata \ "Table1 \" nel database di Access, il seguente script SQL selezionare tutti i dati da esso.

SELEZIONARE


DA OPENQUERY (AccessDB, 'SELECT FROM Table1')

3 Se necessario, è possibile rimuovere il server collegato utilizzando la procedura sp_dropserver.

ESEGUIRE sp_dropserver 'AccessDB'

Importazione di dati nel database di Access

4 Per importare i dati in una tabella esistente nel database di Access, la sintassi INSERT OPENQUERY (...) deve essere utilizzato. Ad esempio, se la tabella di SQL Server si chiama SrvTable e la tabella di Access si chiama Table1 e entrambe le tabelle contengono le stesse colonne, il seguente script SQL copia i dati dalla tabella di SQL Server nella tabella di Access.

INSERT OPENQUERY (AccessDB, 'SELECT

FROM Table1')
SELECT FROM SrvTable

5 Se necessario, è possibile anche aggiornare i dati esistenti nel database di Access dal SQL Server utilizzando la sintassi OPENQUERY UPDATE, come si vede qui sotto.

UPDATE OPENQUERY (AccessDB, 'SELECT * FROM Table1')
SET Col1 = 'Testing ...'

6 È inoltre possibile eliminare i dati dal database di Access utilizzando la sintassi OPENQUERY DELETE. (Notare le virgolette singole di escape [ ''] all'interno della dichiarazione OPENQUERY.)

DELETE OPENQUERY (AccessDB, 'SELECT * FROM Table1 WHERE Col1 =' 'Testing ...' '')

7 Infine, creare una stored procedure che utilizza una qualsiasi combinazione delle dichiarazioni OPENQUERY per compiere il proprio compito di importazione dei dati. Ad esempio, per copiare tutti i record dalla SrvTable a Table1 del database di Access, quindi aggiornare Col1 a \ "Testing ... \", utilizzare il seguente script SQL.

CREATE PROCEDURE CopyToTable1 AS BEGIN
INSERT OPENQUERY (AccessDB, 'SELECT FROM Table1')
SELECT FROM SrvTable

UPDATE OPENQUERY (AccessDB, 'SELECT * FROM Table1')
SET Col1 = 'Testing ...'
FINE

Consigli e avvertenze

  • server collegati possono anche essere creati all'interno di una stored procedure, purché essi hanno un nome univoco
  • Il driver di database Jet non è progettato per high-throughput di transazione o ad alto volume, quindi questo non è raccomandato per le situazioni in cui le prestazioni sono critiche.