Nwlapcug.com


Come importare i dati in MS Access utilizzando SQL Stored procedure

Come importare i dati in MS Access utilizzando SQL Stored procedure


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

Istruzioni

Configurare e testare 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 chiamato \"AccessDB.\, è piaciuto molto" (il valore dopo @datasrc è il percorso al database di Access nel computer che esegue SQL Server).

EXEC sp_addlinkedserver
@server = 'AccessDB',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\Path\to\Access\Database.mdb'
VAI

2

Testare il server collegato selezionando da una tabella esistente nel database di Access (questo è facoltativo). Ad esempio, se c'è una tabella denominata \"Table1\" nel database di Access, lo script SQL seguente selezionerà 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.

EXECUTE sp_dropserver 'AccessDB'

Importazione di dati in Database di Access

4

Per importare dati in una tabella esistente nel database di Access, deve essere utilizzata la sintassi di inserire OPENQUERY(...). Ad esempio, se la tabella di SQL Server è denominata SrvTable e la tabella di accesso è denominata Table1 ed entrambe le tabelle contengono le stesse colonne, lo script SQL seguente copierà i dati dalla tabella di SQL Server nella tabella di Access.

INSERIRE OPENQUERY (AccessDB, 'SELECT FROM Table1')
SELEZIONARE
da SrvTable

5

Se necessario, è anche possibile aggiornare i dati esistenti nel database di Access da SQL Server utilizzando la sintassi OPENQUERY aggiornare, come mostrato qui sotto.

AGGIORNAMENTO OPENQUERY (AccessDB, ' SELECT * FROM Table1')
SET Col1 = 'Test...'

6

È anche possibile eliminare i dati dal database di Access utilizzando la sintassi OPENQUERY Elimina. (Si noti l'escape apici [' '] all'interno dell'istruzione OPENQUERY).

Elimina OPENQUERY (AccessDB, ' SELECT * FROM Table1 dove Col1 = 'Test... ' ')

7

Infine, creare una stored procedure che utilizza qualsiasi combinazione delle istruzioni OPENQUERY per completare l'attività di importazione di dati. Ad esempio, per copiare tutti i record dalla SrvTable Table1 del database di Access, quindi aggiornare Col1 a \"Testing...\", utilizzare il seguente script SQL.

CREARE PROCEDURE CopyToTable1 AS BEGIN
INSERIRE OPENQUERY (AccessDB, 'SELECT FROM Table1')
SELEZIONARE
da SrvTable

AGGIORNAMENTO OPENQUERY (AccessDB, ' SELECT * FROM Table1')
SET Col1 = 'Test...'
FINE

Consigli & Avvertenze

  • Server collegati possono anche essere creati da all'interno di una stored procedure, purché essi hanno un nome univoco
  • Il driver di database Jet non è progettato per la velocità effettiva di transazione elevati o ad alto volume, quindi questo non è consigliato per situazioni dove le prestazioni sono critiche.