sql >> Databasteknik >  >> RDS >> Sqlserver

Migrera en Microsoft Access-databas till SQL Server

Introduktion

Microsoft Access är ett populärt datorbashanteringssystem som innehåller applikationsutvecklingsverktyg (formulär, rapporter, frågor, VBA-makron) med ett relationellt DBMS. MS Access är idealiskt för enskilda användare eller för små arbetsgrupper där ett fåtal användare arbetar med data samtidigt genom att dela en MS Access-databasfil över ett lokalt nätverk.

Men när antalet samtidiga användare växer över en handfull, börjar MS Access stöta på problem med att dela data. En lösning på detta "skala upp"-problem är att dela upp MS Access-databasen och vara värd för data i en serverbaserad DBMS som Microsoft SQL Server.

Microsoft tillhandahåller ett praktiskt verktyg som kallas "Microsoft SQL Server Migration Assistant for MS Access" (SSMA) för att hjälpa till att flytta databastabellerna från en MS Access-databas till SQL Server. Innan du går in i de faktiska stegen i denna process är det bra att förstå arkitekturen för ett MS Access-databassystem. Denna arkitektur beskrivs med början på nästa sida.

Förutsättningar

Innan du går vidare med denna handledning, se till att följande programvara är på plats.

Denna handledning skrevs med Microsoft Access 2013 (från 64-bitars MS Office) som körs på ett Windows 7 64-bitars operativsystem. MS Access 2010 och 2016 kan också fungera men har inte testats. Var noga med att kontrollera MS Office eftersom 32-bitars MS Access inte kommer att ha rätt stöd för att tillåta SSMA att fungera.

Du kan också behöva installera programvaran MS Access 2010 Runtime. Denna programvara designades ursprungligen för att läsa MS Access-databasfiler utan att behöva installera en komplett version av MS Access. QL Server Migration Assistant använder Data Access Objects (DAO)-delarna i MS Access 2010 Runtime för att öppna MS Access-filer.

Ett exempel på MS Access-databasfil tillhandahålls (se nästa sidor för länkar till denna fil).

Måldatabashanteringssystemet kommer att vara Microsoft SQL Server. Denna handledning kräver autentiseringsuppgifter (användarnamn, lösenord etc.) till en SQL Server-instans. Du kan installera MS SQL Server på din egen PC eller server, använda en befintlig server i ditt hem eller på din arbetsplats, eller använda en molnbaserad tjänst för att vara värd för SQL Server åt dig. En handledning om hur du ställer in en SQL Server-instans på GearHost finns här:/getting-started-with-gearhost-for-sql-server-database-development/

Observera att från och med 2021 har GearHost inte längre en Free-Tier SQL Server-instans. Du kanske vill prova att skaffa ett studentkonto på Microsoft Azure och använda Azure SQL Database.

Du bör också ha Microsoft SQL Server Management Studio tillgänglig för att direkt utforska och arbeta med SQL Server. Använd SQL Server Management Studio för att ansluta till din SQL Server-instans och skapa en tom databas.

En SQL Server-instans som är värd för GearHost används för denna handledning. En exempeldatabas med namnet testmssqldb1 skapades som visas i SQL Server Management Studio Object Explorer nedan.

Slutligen, se till att göra en säkerhetskopia av alla MS Access-databasfiler innan du migrerar dem till SQL Server.

Nästa avsnitt introducerar arkitekturen för en Microsoft Access-databas.

Microsoft Access Database Architecture

De flesta informationssystem som använder en databas för att lagra data kan beskrivas av fyra huvudkomponenter:

  1. Användargränssnitt – Det här är de formulär, rapporter och frågor som systemets slutanvändare interagerar med.
  2. Affärslogik – Det här är programmeringskod som implementerar olika affärsregler som organisationen arbetar efter. Det kan till exempel finnas en affärsregel att ingen anställd får tilldelas mer än 30 timmar per vecka på ett enskilt projekt. Denna regel skulle implementeras i programmeringskod.
  3. Databashanteringssystem – Detta är programvaran som används för att hantera data i databasen. Den kan också ha funktioner som samtidighetskontroll för att tillåta flera användare att säkert arbeta med datan. Några exempel på DBMS inkluderar MS Access, MS SQL Server, Oracle, MySQL och Postgres.
  4. Databas – Det är här den faktiska datan lagras. Vanligtvis är data organiserade i en uppsättning databastabeller. Varje tabell har kolumner och dataposter.

En Databassystemarkitektur beskriver hur var och en av dessa fyra komponenter är ordnade. Ofta används termen "Front End" för att beskriva komponenterna User Interface och Business Logic. "Back End" består av DBMS och databasen.

Som en stationär DBMS lagrar MS Access alla komponenter i databassystemapplikationen i en enda fil. DBMS-programvaran körs på den stationära datorn. Datainmatningsformulär, rapporter och frågor interagerar med databastabellerna som är lagrade i samma MS Access Database-fil (.accdb-fil) som visas i bilden nedan.

För att dela MS Access-data över ett lokalt nätverk kan vi "dela" databasfilen i två. En fil kommer att innehålla formulär, rapporter, frågor och andra delar av databasapplikationen, medan den andra databasfilen endast kommer att innehålla databastabellerna och deras data. Applikationskomponenterna (formulär, rapporter, etc.) kommer att använda Externa länkar till den andra databasfilen för att hämta och uppdatera data. Detta visas i figuren nedan.

När antalet användare ökar kommer denna metod att dela data att bli begränsad. I det här fallet kan vi migrera databastabellerna till Microsoft SQL Server. Återigen kommer externa länkar att användas för att koppla applikationskomponenterna (formulär, rapporter etc.) till databastabellerna som visas i figuren nedan.

Denna "uppdelning" eller "ökning" till SQL Server-metoden är fokus i den här handledningen.

Nästa avsnitt introducerar ett exempel på MS Access-databas som kommer att användas för att demonstrera databasmigreringen.

Exempelmedarbetardatabasen

Denna handledning använder sig av en enkel anställd databas som kan laddas ner från denna länk. I denna databas finns det fyra huvudtabeller:Avdelning, Anställd, Projekt och Projektuppdrag.

Relationerna mellan tabeller visas nedan:

Det finns 5 datainmatningsformulär, en fråga och en rapport.

Ta några minuter att utforska den här databasen innan du går vidare i handledningen. Se till att stänga databasfilen när du har utforskat klart. Gör även en säkerhetskopia av filen om du vill upprepa denna handledning i framtiden.

I nästa avsnitt av denna handledning kommer Microsoft SQL Server Migration Assistant för MS Access-verktyg att laddas ner och installeras.

Hämta och installera Microsoft SQL Server Migration Assistant för MS Access

Microsoft SQL Server Migration Assistant för MS Access kan laddas ner från följande Microsoft-webbplats:https://www.microsoft.com/en-us/download/details.aspx?id=54255

Klicka på Ladda ned knappen och spara sedan den nya filen. Filnamnet bör vara ungefär SSMA för Access.7.3.0.msi även om en nyare version kan vara tillgänglig i framtiden. Dubbelklicka på filen SSMA for Access.7.3.0.msi för att starta installationsprogrammet.

När välkomstskärmen visas klickar du på Nästa för att gå till nästa steg.

Läs igenom licensavtalet för slutanvändare, klicka på Jag accepterar avtalet alternativknappen och klicka sedan på Nästa för att fortsätta.

Klicka på Anpassad installation och välj sedan de funktioner som ska installeras samt installationsplatsen. Välj alla funktioner att installera och välj en destination (vanligtvis C:-enheten). Klicka på Nästa för att fortsätta.

Vid denna tidpunkt är produkten redo att installeras. Klicka på Installera för att fortsätta.

Installationsprogrammet tar några minuter att slutföra installationen. Under den tiden kommer en statusskärm att visas som visas nedan.

När SSMA-installationen är klar klickar du på Slutför knappen.

SQL Server Migration Assistant for Access kommer att visas på Windows Start-menyn. Det kommer också att finnas en SQL Server Migration Assistant for Access-grupp.

Nu när SSMA är installerat kan MS Access-databasen migreras. Dessa steg beskrivs på nästa sida.

Migrera en MS Access-databas

Se till att du har en säkerhetskopia av din MS Access-databas.

Leta upp menyalternativet Microsoft SQL Server Migration Assistant for Access på Windows Start-meny och klicka på det för att starta SSMA.

SSMA-guiden visas och visar välkomstskärmen. Notera konturerna av de 6 stegen som kommer att slutföras. Vid det här laget måste du ha MS Access Employee-databasfilen tillgänglig samt autentiseringsuppgifterna för en MS SQL Server-databas. Klicka på Nästa för att gå till det första steget i guiden.

Det första steget är att skapa ett nytt migrationsprojekt. Ge projektet ett namn (Employee_Database_Migration_Project används för detta exempel). Välj en mapp att lagra projektet i. Välj slutligen SQL Server-versionen för SQL Server-måldatabasen. SQL Server 2016 kommer att användas i detta exempel. När du är klar klickar du på Nästa knappen.

Nästa steg är att lägga till MS Access-databaser som ska migreras. Formuläret bör visas tomt vid denna tidpunkt. Klicka på Lägg till databaser knappen.

Navigera till mappen som innehåller filen anställd.accdb och välj den filen. Klicka på Öppna knappen.

Filen werknemer.accdb bör nu visas. Klicka på Nästa för att fortsätta.

Nu när MS Access-databasen har öppnats är nästa steg att välja innehållet i databasen som ska migreras till SQL Server. I allmänhet kommer bara tabellerna att migreras och dessa bör väljas som standard. Observera också att alla index och primärnycklar som ingår i varje tabell också kommer att migreras. (Om inga tabeller är listade, installera MS Access 2010 Runtime-programvaran och försök igen).

För det här exemplet, se till att alla databastabellerna är valda enligt nedan. Klicka på Nästa för att fortsätta.

Nästa steg i guiden är att ange autentiseringsuppgifterna för SQL Server-målinstansen. Fyll i fälten enligt din SQL Server-konfiguration. För det här exemplet används en SQL Server-instans på Gearhost.

Värdnamnet kommer att vara serverns internetvärdnamn eller IP-adress. Om SQL Server är installerad på din lokala PC eller server, använd localhost som servernamn.

Serverporten är portnumret för SQL Server-avlyssnaren. Lämna detta som standard (såvida du inte har ändrat denna konfiguration på din SQL Server).

Databasen kommer att vara namnet på databasen som är bosatt i SQL Server-instansen. För det här exemplet skapades redan en exempeldatabas med namnet testmssqldb1 på servern.

Välj metoden för autentisering för din SQL Server-instans. För det här exemplet kommer SQL Server Authentication att användas. Ett användarnamn och lösenord kopplat till SQL Server-instansen måste tillhandahållas.

Fyll i de återstående uppgifterna inklusive ett användarnamn och lösenord och välj lämpliga alternativ om anslutningen ska krypteras eller inte.

När alla autentiseringsuppgifter har angetts klickar du på Nästa knappen.

Vid denna tidpunkt kommer migreringsguiden att uppmana att länka databasapplikationen (formulär, rapporter, etc.) till de resulterande SQL Server-databastabellerna. Det är precis vad som krävs i det här fallet. Kontrollera att länktabellerna kryssrutan är markerad och klicka på Nästa knappen.

Skärmen Migreringsstatus visas när källdata analyseras och förbereds för att laddas in i SQL Server.

Efter konverteringen visas en dialogruta som visar en lista över alla tabeller och deras associerade index och triggers (om sådana finns). I det här exemplet kommer alla tabeller och deras associerade objekt att migreras till SQL Server. Klicka på OK för att stänga den här dialogrutan.

Guiden kommer att fortsätta att bearbeta tabelldata och ladda de konverterade objekten till databasen.

Under länkkonverterade tabeller steg, kan guiden uppmanas att ange SQL Server-uppgifterna igen. Ange dessa uppgifter igen och klicka på Anslut knappen.

Migreringsguiden fortsätter. När migreringen är klar visas en sammanfattningsskärm. Om det fanns några fel klickar du på den associerade Rapport för att granska dem. När du är klar klickar du på Stäng knappen.

Huvudskärmen för SSMA visas. Dra ned Fil och välj Spara projekt för att spara det aktuella projektet. Välj Anställd databas för att extrahera och spara metadata.

Vid det här laget är migreringsjobbet klart och vi kan avsluta SSMA-programmet.

Det sista avsnittet av handledningen visar hur man kör det nyligen migrerade MS Access-databasprogrammet.

Köra MS Access-databasapplikationen

Öppna databasen employeedb.accdb i MS Access. Observera att de ursprungliga tabellerna nu har bytt namn. Till exempel heter den ursprungliga personaltabellen nu SSMA$employee$local. Den här tabellen är fortfarande lagrad i databasen staffdb.accdb.

Fyra nya databastabelllänkar har blivit skapad. Alla befintliga formulär, frågor och rapporter som refererade till dessa namn kommer nu istället att referera till länkarna till varje tabell i SQL Server-databasen. För att testa detta, öppna formuläret för avdelningsdatainmatning.

Du kan få felmeddelandet "Inloggning" eller "Anslutning misslyckades" enligt nedan:

Klicka på OK-knappen och ange sedan lämpliga referenser för SQL Server-instansen. Klicka sedan på OK knappen.

Ur ett slutanvändarperspektiv är det ingen förändring i hur formuläret ser ut eller fungerar. Det enda mindre problemet som användare kan uppleva är en liten fördröjning i att öppna en stor datasamling eftersom begäran måste skickas till en fjärransluten SQL Server-instans som sedan måste paketera resultaten och returnera dem till MS Access-databasapplikationen.

Öppna några av de ytterligare datainmatningsformulären och se till att alla fungerar korrekt.

När funktionen hos den migrerade databasen har bekräftats, kan de ursprungliga (nu bytt namn) tabellerna tas bort från databasfilen employeedb.accdb. Efter detta steg kan databasfilen employeedb.accdb distribueras till användare så att de kan börja arbeta med data som nu lagras på en central plats i en SQL Server-instans.


  1. Vad är standardnamnet för begränsningar i SQL Server?

  2. Hur man lägger till just de distinkta värdena med SQLite Sum()

  3. PostgreSQL-fråga för att returnera resultat som en kommaseparerad lista

  4. Tuning SQL Server Reporting Services