Migrera en Access-databas till SQL Server

Migrera en Access-databas till SQL Server

Vi har alla begränsningar och en Access-databas är inget undantag. En Access-databas har till exempel en storleks gräns på 2 GB och stöder inte fler än 255 samtidiga användare. Så när det är dags för databasen att gå till nästa nivå kan du migrera till SQL Server. SQL Server (oavsett om den lokala eller i Azure-molnet) stöder större mängder data, fler samtidiga användare och har högre kapacitet än JET/ess-databas motorn. Med den här guiden får du en smidig start för din SQL Server-resa, hjälper till att bevara de snabb åtkomst lösningar som du har skapat och motivera dig att använda Access för framtida databas lösningar. Utvidgnings guiden togs bort från Access i Access 2013, så nu kan du använda Microsoft SQL Server Migration Assistant (SSMA). Följ de här stegen om du vill migrera.

Stegen i migrering av databas till SQL Server

Innan du börjar

Följande avsnitt innehåller en bakgrund och annan information som hjälper dig att komma igång.

Om att dela databaser

Alla Access-databasobjekt kan antingen finnas i en databas fil eller lagras i två databasfiler: en frontend-databas och en backend-databas. Detta kallas dela databasen och är utformad för att under lätta delning i en nätverks miljö. Backend-databasfilen får bara innehålla tabeller och relationer. Frontend-filen får bara innehålla alla andra objekt, inklusive formulär, rapporter, frågor, makron, VBA-moduler och länkade tabeller till backend-databasen. När du migrerar en Access-databas liknar den en delad databas i den SQL Server som fungerar som en ny backend för de data som finns på en server.

Som ett resultat av detta kan du fortfarande behålla front databasen med länkade tabeller till SQL Server-tabeller. Du kan till och med göra fördelarna med snabb program utveckling som en Access-databas ger, samt utbyggbarheten för SQL Server.

Fördelar med SQL Server

Vill du fortfarande ha lite övertygande att migrera till SQL Server? Här är några andra fördelar att tänka på:

  • Flera samtidiga användare    SQL Server kan hantera flera samtidiga användare än Access och minimerar minnes kraven när fler användare läggs till.

  • Ökad tillgänglighet    Med SQL Server kan du dynamiskt säkerhetskopiera, antingen stegvisa eller fullständiga, databasen när den används. Med andra ord behöver du inte tvinga användarna att avsluta sitt arbete och stänga databasen när du vill säkerhetskopiera databasen.

  • Hög prestanda och skalbarhet    SQL Server-databasen fungerar vanligt vis bättre än en Access-databas, särskilt med en stor, terabyte-databas. Dessutom bearbetar SQL Server frågor mycket snabbare och effektivt genom att bearbeta frågor parallellt, med flera egna trådar i en enda process för att hantera användar förfrågningar.

  • Förbättrad säkerhet    Om du använder en betrodd anslutning integreras SQL Server med Windows säkerhets säkerhet för att ge en enkel integrerad åtkomst till nätverket och databasen, med det bästa av båda säkerhets systemen. Det gör det mycket enklare att administrera komplexa säkerhets scheman. SQL Server är den perfekta lagrings platsen för känslig information som person nummer, kreditkorts uppgifter och adresser som är konfidentiella.

  • Omedelbar återhämtning    Om operativ systemet kraschar eller om strömmen blir uppkopplad kan SQL Server automatiskt återställa databasen till ett konsekvent tillstånd på bara några minuter och ingen databas administratörs åtgärd.

  • Användning av VPN    Åtkomst och virtuella privata nätverk (VPN) får inte dig. Men med SQL Server kan fjärranslutna användare använda samma front-frontend-databas på ett skriv bord och SQL Server-backenden bakom VPN-brandväggen.

  • Azure SQL Server    Utöver fördelarna med SQL Server erbjuder den dynamiska skalbarheten utan nertid, intelligent optimering, global skalbarhet och tillgänglighet, Eli minering av maskin varu kostnader och minskad administration.

Välj det bästa alternativet för Azure SQL Server

Om du migrerar till Azure SQL Server finns det tre alternativ att välja bland, var och en med olika fördelar:

  • En enda databas/elastiska pooler    Det här alternativet har en egen uppsättning resurser som hanteras via en SQL-databasserver. En enda databas är som en innesluten databas i SQL Server. Du kan också lägga till en elastisk pool, som är en samling databaser med en delad uppsättning resurser som hanteras via SQL-serverdatabasen. De vanligaste funktionerna i SQL Server är tillgängliga med inbyggd säkerhets kopiering, korrigering och återställning. Men ingen exakt garanti är att det är svårt att migrera från SQL Server.

  • Hanterad instans    Det här alternativet är en uppsättning system-och användar databaser med en delad uppsättning resurser. En hanterad instans är som en instans av SQL Server-databasen som är mycket kompatibel med SQL Server lokalt. En hanterad instans har inbyggda säkerhets kopior, korrigeringar, återställning och är enkelt att migrera från SQL Server. Det finns emellertid ett litet antal SQL Server-funktioner som inte är tillgängliga och ingen tillräckligt säkert underhålls tid.

  • Virtuell Azure-dator    Med det här alternativet kan du köra SQL Server på en virtuell dator i Azure-molnet. Du har fullständig kontroll över SQL Server-motorn och en enkel migrerings väg. Men du behöver hantera dina säkerhets kopior, korrigeringar och återställning.

Mer information finns i välja din sökväg för databas migrering till Azure och välja rätt SQL Server-alternativ i Azure.

Första stegen

Det finns några problem som du kan använda för att effektivisera migreringen innan du kör SSMA:

  • Lägga till tabell index och primär nycklar    Kontrol lera att varje Access-tabell har ett index och en primär. SQL Server kräver att alla tabeller har minst ett index och kräver att en länkad tabell har en primär nycklar om tabellen kan uppdateras.

  • Kontrol lera primär-och sekundär nyckel relationer    Kontrol lera att dessa relationer baseras på fält med konsekventa data typer och storlekar. SQL Server stöder inte kopplade kolumner med olika data typer och storlekar i begränsningar för sekundär nycklar.

  • Ta bort kolumnen med bifogade filer    SSMA migrerar inte tabeller som innehåller kolumnen med bifogade filer.

Följ de här anvisningarna innan du kör SSMA.

  1. Stäng Access-databasen.

  2. Kontrol lera att aktuella användare som är anslutna till databasen även stänger databasen.

  3. Om databasen är i . MDB-filformattar du bort säkerhet på användar nivå.

  4. Säkerhetskopiera databasen. Mer information finns i skydda data med säkerhets kopiering och återställning.

Tips!    Du kan installera Microsoft SQL Server Express Edition på din station ära dator som har stöd för upp till 10 GB och är ett kostnads fritt och enklare sätt att köra och kontrol lera migreringen. När du ansluter ska du använda LocalDB som databas instans.

Tips!    Använd om möjligt en fristående version av Access. Om du endast kan använda Office 365 kan du använda databas motorn Access 2010 för att migrera din Access-databas med SSMA. Mer information finns i Microsoft Access-databasmotorn 2010 Redistributable.

Kör SSMA

Microsoft tillhandahåller Microsoft SQL Server Migration Assistant (SSMA) för att göra migreringen lättare. SSMA migrerar huvudsakligen tabeller och urvals frågor utan parametrar. Formulär, rapporter, makron och VBA-moduler konverteras inte. SQL Server metadata Explorer visar dina Access-databasobjekt och SQL Server-objekt som gör att du kan granska det aktuella innehållet i båda databaserna. Dessa två anslutningar sparas i din migreringstabell ska du välja att överföra ytterligare objekt i framtiden.

Obs!    Migreringen kan ta en stund beroende på databas objektens storlek och mängden data som måste överföras.

  1. Om du vill migrera en databas med SSMA först laddar du ned och installerar program varan genom att dubbelklicka på den hämtade MSI-filen. Kontrol lera att du installerar rätt 32-eller 64-bitars version för din dator.

  2. När du har installerat SSMA kan du öppna den på Skriv bordet, helst från datorn med Access-databasfilen.

    Du kan också öppna den på en dator med åtkomst till databasen från nätverket i en delad mapp.

  3. Följ anvisningarna i SSMA för att tillhandahålla grundläggande information, till exempel SQL Server-platsen, Access-databasen och-objekten för att migrera, anslutnings information och om du vill skapa länkade tabeller.

  4. Om du migrerar till SQL Server 2016 eller senare och vill uppdatera en länkad tabell lägger du till en ROWVERSION kolumn genom att välja Granska verktyg > Project-inställningar > Allmänt.

    Med fältet ROWVERSION undviker du post konflikter. Access använder det här fältet ROWVERSION i en länkad SQL Server-tabell för att fastställa när posten senast uppdaterades. Om du lägger till fältet ROWVERSION i en fråga används det också för att markera raden igen efter en uppdatering. Detta förbättrar effektiviteten genom att bidra till att undvika skrivfel och att spela in borttagnings scenarion som kan hända när Access upptäcker olika resultat från det ursprungliga inlämnings tillfället, till exempel när det uppstår flytt ALS nummer och utlösare som ändrar Sammanfattning. Du bör emellertid inte använda fältet ROWVERSION i formulär, rapporter eller VBA-kod. Mer information finns i ROWVERSION.

    Obs!    Undvik förvirrande ROWVERSION med tidsstämplar. Trots att nyckelordet tidsstämpel är en synonym för ROWVERSION i SQL Server kan du inte använda ROWVERSION som ett sätt att tidsstämpla en data inmatning.

  5. Om du vill ange exakta data typer väljer du Granska verktyg > projekt inställningar > typ mappning. Om du till exempel bara lagrar svensk text kan du använda data typen varchar i stället för nvarchar .

Konvertera objekt

SSMA konverterar Access-objekt till SQL Server-objekt, men kopierar inte objekten direkt. SSMA ger en lista med följande objekt som ska flyttas så att du kan bestämma om du vill flytta dem till SQL Server-databasen:

  • Tabeller och kolumner

  • Välj frågor utan parametrar.

  • Primär-och sekundär nycklar

  • Index och standardvärden

  • Kontroll begränsningar (Tillåt kolumn egenskap med nollängd, kolumn verifierings uttryck, tabell verifiering)

Det bästa är att använda utvärderings rapporten för SSMA, som visar konverterings resultaten, inklusive fel, varningar, informations meddelanden, tids beräkningar för att utföra migreringen och eventuella enskilda fel korrigerings steg innan du flyttar objekten.

Om du konverterar databas objekt från Access-metadata konverteras de till motsvarande Transact-SQL-syntax (T-SQL)och läser sedan in den här informationen i projektet. Du kan sedan Visa SQL Server-eller SQL Azure-objekten och deras egenskaper genom att använda SQL Server eller SQL Azure metadata Explorer.

Följ den här guidenom du vill konvertera, läsa in och migrera objekt till SQL Server.

Tips!    När du har migrerat din Access-databas sparar du projekt filen för senare användning så att du kan migrera dina data igen för testning eller slutgiltig migrering.

Länka tabeller

Du kan installera den senaste versionen av SQL Server OLE DB och ODBC-drivrutinerna i stället för att använda de egna SQL Server-drivrutinerna som medföljer Windows. Inte bara nyare driv rutiner är snabbare, men de har stöd för nya funktioner i Azure SQL som tidigare driv rutiner inte gör det. Du kan installera driv rutinerna på varje dator där den konverterade databasen används. Mer information finns i Microsoft OLE DB driver 18 för SQL Server och Microsoft ODBC driver 17 för SQL Server.

När du har migrerat Access-tabeller kan du länka till tabellerna i SQL Server som nu är värd för dina data. Genom att länka direkt från Access får du också ett enklare sätt att visa dina data i stället för att använda de mer komplexa verktyg för hantering av SQL Server.  Du kan fråga och redigera länkade data beroende på vilka behörigheter som konfigureras av SQL Server-databasens administratör.

Obs!    Om du skapar ett ODBC DSN när du länkar till SQL Server-databasen under länknings processen kan du antingen skapa samma DSN på alla datorer som använder det nya programmet eller program mässigt använda den anslutnings sträng som lagras i DSN-filen.

Mer information finns i Länka till eller importera data från en Azure SQL Server-databas och Importera eller länka till data i en SQL Server-databas.

!   Glöm inte att använda länk hanteraren i Access för att uppdatera och länka om tabeller. Mer information finns i Hantera länkade tabeller.

Testa och omarbeta

I följande avsnitt beskrivs vanliga problem som du kan stöta på när du migrerar och hur du hanterar dem.

Frågor

Endast urvals frågor konverteras; andra frågor är inte inklusive urvals frågor som tar parametrar. Vissa frågor kanske inte helt konverteras och SSMA rapporterar fråga efter konverteringen. Du kan manuellt redigera objekt som inte konverteras med hjälp av syntaxen för T-SQL. Syntaxfel kan också kräva att manuellt konvertera Access-specifika funktioner och data typer till SQL Server. Mer information finns i jämföra Access SQL med SQL Server tsql.

Datatyper

Access och SQL Server har liknande data typer, men tänk på följande möjliga problem.

Stort tal    Data typen stort tal lagrar ett icke-monetärt, numeriskt värde och är kompatibelt med SQL bigint-datatypen. Du kan använda den här data typen för att effektivt beräkna stora tal, men det kräver åtkomst 16 (16.0.7812 eller senare). accdb-databasens fil format och fungerar bättre med 64-bitars versionen av Access. Mer information finns i använda data typen stort tal och välja mellan 64-bitars-eller 32-bitars versionen av Office.

Ja/Nej    Som standard konverteras kolumnerna ja/nej till ett SQL Server-fält. För att undvika Arkiv handlingar Kontrol lera att biten bit är inställd på att förbjuda NULL-värden. I SSMA kan du välja kolumnen bit för att ange egenskapen Tillåt null -värden till Nej. Använd instruktionen Skapa tabell eller Alter Table i tsql.

Datum och tid    Det finns flera olika datum och tid:

  • Om kompatibilitetsnivån för databasen är 130 (SQL Server 2016) eller senare, och en länkad tabell innehåller en eller flera kolumner för datum/tid eller datetime2, kan tabellen returnera meddelandet #deleted i resultatet. Mer information finns i Access-länkad tabell till SQL-Server-databas returnerar #deleted.

  • Använd data typen datetime2 som har ett större datum intervall än DateTime.

  • När du frågar om datum i SQL Server tar du hänsyn till både tid och datum. Till exempel:

    • DateOrdered mellan 1/1/19 och 1/31/19 kanske inte innehåller alla beställningar.

    • DateOrdered mellan 1/1/19 00:00:00 AM och 1/31/19 11:59:59 PM inkluderar alla beställningar.

Bifogad fil   Data typen Attachment lagrar en fil i Access-databasen. I SQL Server finns det flera olika alternativ att tänka på. Du kan extrahera filerna från Access-databasen och sedan spara länkar till filerna i SQL Server-databasen. Alternativt kan du använda FILESTREAM, FileTables eller Remote BLOB Store (RBS) för att hålla bilagor lagrade i SQL Server-databasen.

Hyperlänk    Access-tabeller har kolumner som inte stöds i SQL Server. Som standard konverteras de här kolumnerna till nvarchar (max) kolumner i SQL Server, men du kan anpassa mappningen för att välja en mindre datatyp. I Access-lösningen kan du fortfarande använda funktionen hyperlänk i formulär och rapporter om du anger egenskapen HYPERLINK för kontrollen till sant.

Flervärdesfält    Det flervärdesfält är konverterat till SQL Server som ett ntext-fält som innehåller den avgränsade mängden med värden. Eftersom SQL Server inte har stöd för en flervärdesdatatyp som motsvarar en många-till-många-relation krävs det kanske ytterligare design- och konverteringsarbete.

Mer information om att mappa Access-och SQL Server-datatyper finns i jämföra data typer.

Obs!    Flervärdesfält konverteras inte och bevaras inte i Access 2010.

Mer information finns i datum-och tids typer, sträng-och binära typersamt numeriska typer.

Visual Basic

Trots att VBA inte stöds av SQL Server, bör du tänka på följande:

VBA-funktioner i frågor    Access-frågor har stöd för VBA-funktioner på data i en fråga. Men Access-frågor med VBA-funktioner kan inte köras på SQL Server, så alla begärda data skickas till Microsoft Access för bearbetning. I de flesta fall ska de här frågorna konverteras till direkt frågor.

Användardefinierade funktioner i frågor    Microsoft Access-frågor stöder användning av funktioner definierade i VBA-moduler för att bearbeta data som skickas till dem. Frågor kan vara fristående frågor, SQL-uttryck i formulär-och rapport data källor, data källor för kombinations rutor och list rutor i formulär, rapporter och tabell fält samt uttryck för standard-och verifierings regler. SQL Server kan inte köra de här användardefinierade funktionerna. Du kan behöva designa om dessa funktioner manuellt och konvertera dem till lagrade procedurer på SQL Server.

Optimera prestanda

Det viktigaste sättet att optimera prestanda med den nya backend-SQL-servern är i stort sett att bestämma när du ska använda lokala eller fjärrfrågor. När du migrerar dina data till SQL Server flyttas du även från en fil server till en klient modell med data bearbetning. Följ de här allmänna rikt linjerna:

  • Kör små, skrivskyddade frågor på klienten för snabb åtkomst.

  • Kör långa, Läs/skriv frågor på servern för att dra nytta av den större bearbetnings kraften.

  • Minimera nätverks trafik med filter och aggregation för att endast överföra data du behöver.

Optimera prestanda i databas modellen för klient servrar

Mer information finns i skapa en direkt fråga.

Följande är ytterligare, rekommenderade rikt linjer.

Sätt logik på servern    Ditt program kan även använda vyer, användardefinierade funktioner, lagrade procedurer, beräknade fält och utlösare för att centralisera och dela program logik, affärs regler och principer, komplexa frågor, data verifiering och referens integritets kod på Server och inte klient. Fråga dig själv, kan den här frågan eller uppgiften utföras på servern bättre och snabbare? Testa slutligen varje fråga för att säkerställa optimal prestanda.

Använda vyer i formulär och rapporter    Gör följande i Access:

  • För formulär använder du en SQL-vy för ett skrivskyddat formulär och en SQL-indexerad vy för ett Läs-och skriv formulär som data källa.

  • För rapporter använder du en SQL-vy som data källa. Skapa en separat vy för varje rapport så att du enklare kan uppdatera en specifik rapport utan att påverka andra rapporter.

Minimera inläsning av data i ett formulär eller en rapport    Visa inte data förrän användaren ber om det. Om du till exempel behåller egenskapen RecordSource tom kan användarna välja ett filter i formuläret och sedan fylla på egenskapen RecordSource med filtret. Eller så kan du använda WHERE-satsen i DoCmd. OpenForm och DoCmd. openrapport för att visa de exakta post (er) som användaren behöver. Överväg att stänga av post navigering.

Var försiktig med heterogena frågor   Undvik att köra en fråga som kombinerar en lokal Access-tabell och den länkade tabellen i SQL Server, som ibland kallas hybrid frågor. Den här typen av fråga kräver fortfarande åtkomst för att ladda ned alla SQL Server-data till den lokala datorn och sedan köra frågan, kör den inte frågan i SQL Server.

När du bör använda lokala tabeller    Överväg att använda lokala tabeller för data som sällan ändras, till exempel listan med stater eller provinser i ett land eller en region. Statiska tabeller används ofta för filtrering och kan utföra bättre åtkomst på front-end.

Mer information finns i inställnings guide för databas motorer, använda analysera prestanda för att optimera en Access-databasoch optimera Microsoft Office Access-program som är kopplade till SQL Server.

Se även

Azure Database migration

Blogg

Microsoft Access till SQL Server migration, konvertering och utvidgning

Så här kan du dela med dig av en Access-skrivbordsdatabas

Obs!:  Den här sidan har översatts automatiskt och kan innehålla grammatiska fel och andra felaktigheter. Vår avsikt är att innehållet ska vara användbart för dig. Skulle du vilja svara på om informationen var till hjälp? Här är den engelska artikeln som en referens.

Utöka dina Office-kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×