hur du importerar data till MS Access med hjälp av SQL lagrade procedurer

Importera data till en Microsoft Access- databas med hjälp av lagrade procedurer är ett ofta förbisett ämne . Medan många resurser finns för att importera data från en Access- databas till en Microsoft SQL Server -databas , flytta data åt andra hållet är inte lika vanligt . I huvudsak en ” länkad server ”kommer att fordonet i valet för att importera data till Access-databasen. Sedan kan en lagrad procedur lätt utföra import och export fritt mellan SQL Server-databasen och Access -databasen

Du behöver :
Microsoft Access -databas .
Microsoft SQL Server 2000 eller senare .
Microsoft Jet-databasmotorn drivrutin ( vanligtvis installeras på de flesta Windows -datorer ) .

konfigurera och testa den länkad server

1 .
Anslut till SQL Server och Skapa en ny länkad server . Detta kan göras med hjälp av följande SQL- skript , som kommer att skapa en ny gillade server som heter ” AccessDB . ” ( Värdet efter @ datasrc är sökvägen till Access-databasen på den dator som kör SQL Server . )

EXEC sp_addlinkedserver
@ server=&#039 AccessDB ” ,
@ leverantör=&#039 Microsoft . Jet. OLEDB. 4. 0 ” ,
@ srvproduct=&#039 OLE DB Provider för Jet ” ,
@ datasrc=&#039 C : \ sökväg \ till \ Access \ Database. mdb ”
GO

2 .
Testa länkad server genom att välja från en befintlig tabell i Access -databasen (detta är valfritt) . Till exempel, om det finns en tabell som kallas ” Tabell1 ” i Access-databasen , kommer följande SQL-skript väljer du alla data från den .

SELECT *
FRÅN OPENQUERY ( AccessDB , ” SELECT * FRÅN Tabell1 ” )
3 .
Om det behövs kan du ta bort den länkade servern med sp_dropserver förfarandet .

EXECUTE sp_dropserver ” AccessDB &#039

Importera data till Access-databasen

1 .
att importera data till en befintlig tabell i Access databas måste INSERT OPENQUERY (. . . ) syntax användas . Till exempel , om SQL Server-tabell kallas SrvTable och Access-tabell kallas Tabell1 och båda tabellerna innehåller samma kolumner , kommer följande SQL-skriptet kopiera data från SQL Server-tabell i Access-tabell .

INSERT OPENQUERY ( AccessDB , ” SELECT * FROM Tabell1 )
SELECT * FROM SrvTable
2 .
Om det behövs kan du även uppdatera befintliga data i Access- databasen från SQL Server med hjälp av UPDATE OPENQUERY syntax , se nedan .

UPDATE OPENQUERY ( AccessDB , ” SELECT * FROM Tabell1 )
SET Kol1=&#039 Testing . . . &#039

3 .
Du kan också radera data från Access-databasen med hjälp av DELETE OPENQUERY syntax . ( Notera flydde enkla apostrofer [ &#039&#039 ] inuti OPENQUERY uttalande . )

RADERA OPENQUERY ( AccessDB , ” SELECT * FROM Tabell1 WHERE Kol1=&#039&#039 Testing . . . &#039&#039&#039)

4 .
Slutligen skapar en lagrad procedur som använder en kombination av OPENQUERY uttalanden för att utföra ditt importera data uppgift . Om du exempelvis vill kopiera alla poster från SrvTable till Tabell1 Access -databasen , sedan uppdatera Kol1 till ” Testa . . . ”, använda följande SQL-skriptet .

SKAPA FÖRFARANDE CopyToTable1 AS BEGIN
INSERT OPENQUERY ( AccessDB , ” SELECT * FROM Tabell1 )
SELECT * FROM SrvTable

UPDATE OPENQUERY ( AccessDB , ” SELECT * FROM Tabell1 )
SET Kol1=&#039 Testing . . .
END

tips och varningar

  • länkade servrar kan också skapas inifrån en lagrad procedur så länge de har ett unikt namn
  • Jet-databasmotorn drivrutin inte är konstruerade för hög-transaktion eller stora volymer genomströmning , så detta rekommenderas inte för situationer där prestanda är kritisk .
  • Visited 1 times, 1 visit(s) today

    コメント

    タイトルとURLをコピーしました