Overføre en Access-database til SQL Server

Overføre en Access-database til SQL Server

Vi har alle begrænsninger, og en Access-database er ingen undtagelse. For eksempel har en Access-database en størrelsesbegrænsning på 2 GB og kan ikke understøtte mere end 255 samtidige brugere. Så når du har tid til, at din Access-database går til næste niveau, kan du overføre til SQL Server. SQL Server (uanset om det er lokale eller i Azure cloud) understøtter større datamængder, mere samtidige brugere og har større kapacitet end JET/ACE-databaseprogrammet. Denne vejledning giver dig en problemfri start på din SQL Server-rejse, hjælper med at bevare Access-front end-løsninger, du har oprettet, og forhåbentlig motiverer dig til at bruge Access til fremtidige databaseløsninger. Guiden Databasekonvertering blev fjernet fra Access i Access 2013, så du kan nu bruge Microsoft SQL Server migration Assistant (SSMA). Følg disse trin for at overføre overførslen korrekt.

Faserne i database overflytning til SQL Server

Inden du går i gang

De følgende afsnit indeholder baggrund og andre oplysninger, der kan hjælpe dig med at komme i gang.

Om opdelte databaser

Alle Access-databaseobjekter kan enten være i én databasefil, eller de kan gemmes i to databasefiler: en front end-database og en back end-database. Dette hedder opdeling af databasen og er udviklet for at gøre det nemmere at dele i et netværksmiljø. Back end-databasefilen må kun indeholde tabeller og relationer. Front end-filen må kun indeholde alle andre objekter, herunder formularer, rapporter, forespørgsler, makroer, VBA-moduler og sammenkædede tabeller til back end-databasen. Når du overfører en Access-database, svarer det til en delt database i den pågældende SQL Server som en ny back-end-server for de data, der nu er placeret på en server.

Derfor kan du stadig bevare front-end Access-databasen med sammenkædede tabeller til SQL Server-tabellerne. Effektivt kan du aflede fordelene ved hurtig programudvikling, som en Access-database tilbyder, samt skalerbarheden af SQL Server.

SQL Server-fordele

Har du stadig brug for en overbevisende til SQL Server? Her er nogle flere fordele, du kan overveje:

  • Flere samtidige brugere    SQL Server kan håndtere mange flere samtidige brugere end Access og minimerer hukommelses kravene, når der tilføjes flere brugere.

  • Øget tilgængelighed    Med SQL Server kan du sikkerhedskopiere dynamisk, enten trinvis eller komplet, databasen, mens den er i brug. Du behøver derfor ikke tvinge brugere til at afslutte databasen for at sikkerhedskopiere data.

  • Høj ydeevne og skalerbarhed    SQL Server-databasen fungerer normalt bedre end en Access-database, især med en stor database med stor TB størrelse. SQL Server behandler også forespørgsler meget hurtigere og effektivt ved at behandle forespørgsler parallelt og bruge flere oprindelige tråde i en enkelt proces til at håndtere brugeranmodninger.

  • Forbedret sikkerhed    Hvis du bruger en pålidelig forbindelse, integreres SQL Server med systemsikkerheden i Windows for at give en enkelt integreret adgang til netværket og databasen, der anvender det bedste fra begge sikkerhedssystemer. Det gør det meget nemmere at administrere komplekse sikkerhedsskemaer. SQL Server er det ideelle lager til følsomme oplysninger såsom CPR-numre, kreditkort data og adresser, der er fortrolige.

  • Umiddelbar gendannelse    Hvis operativsystemet går ned, eller strømmen går ned, kan SQL Server automatisk gendanne databasen til en konsistent tilstand i løbet af et par minutter og uden databaseadministrator input.

  • Brug af VPN    Access og VPN (virtuelt privat netværk) kommer ikke sammen. Men med SQL Server kan fjernbrugere bruge stadig adgang til front end-databasen på en stationær computer og SQL Server-back end-serveren, der er placeret bag VPN-firewall'en.

  • Azure SQL Server    Ud over fordelene ved SQL Server tilbyder dynamisk skalerbarhed uden nedetid, intelligent optimering, global skalerbarhed og tilgængelighed, eliminering af hardwareomkostninger og reduceret administration.

Vælg den bedste Azure SQL Server-indstilling

Hvis du overfører til Azure SQL Server, er der tre muligheder for at vælge mellem, hver med forskellige fordele:

  • Enkelt database/elastiske grupper    Denne indstilling har sit eget sæt ressourcer, der administreres gennem en SQL-database server. En enkelt database fungerer som en opbevaret database i SQL Server. Du kan også tilføje en elastisk gruppe, som er en samling af databaser med et delt sæt ressourcer, der administreres via SQL-database serveren. De mest almindeligt anvendte SQL Server-funktioner er tilgængelige med indbyggede sikkerhedskopier, rettelser og gendannelse. Men der er ingen garanti for den nøjagtige vedligeholdelses periode, og overførslen fra SQL Server kan være svær.

  • Administreret forekomst    Denne indstilling er en samling af system-og brugerdatabaser med et delt sæt ressourcer. En administreret forekomst er som en forekomst af SQL Server-databasen, der er særdeles kompatibel med SQL Server i det lokale miljø. En administreret forekomst har indbyggede sikkerhedskopieringer, rettelser, genoprettelse og er let at overføre fra SQL Server. Der er dog et lille antal SQL Server-funktioner, der ikke er tilgængelige, og som ikke garanteret den nøjagtige vedligeholdelses periode.

  • Azure Virtual Machine    Denne indstilling giver dig mulighed for at køre SQL Server i en virtuel maskine i Azure cloud. Du har fuld kontrol over SQL Server-programmet og en nem overførsels sti. Men du har brug for at administrere dine sikkerhedskopier, programrettelser og gendannelse.

Hvis du vil have mere at vide, skal du se vælge databasens overførsels sti til Azure og vælge den rigtige SQL Server-indstilling i Azure.

Første trin

Der er et par problemer, du kan bruge til at løse det, der kan hjælpe med at strømline overførselsprocessen, før du kører SSMA:

  • Tilføje tabelindeks og primære nøgler    Sørg for, at hver Access-tabel har et indeks og en primær nøgle. SQL Server kræver, at alle tabeller har mindst ét indeks og kræver en sammenkædet tabel for at have en primær nøgle, hvis tabellen kan opdateres.

  • Kontrollér relationer mellem primære/fremmede nøgler    Sørg for, at disse relationer er baseret på felter med ensartede datatyper og størrelser. SQL Server understøtter ikke joinforbundne kolonner med forskellige datatyper og størrelser i begrænsninger for fremmede nøgler.

  • Fjerne kolonnen med vedhæftede filer    SSMA overfører ikke tabeller, der indeholder kolonnen vedhæftet fil.

Før du kører SSMA, skal du udføre følgende første trin.

  1. Luk Access-databasen.

  2. Sørg for, at de aktuelle brugere, der har forbindelse til databasen, også lukker databasen.

  3. Hvis databasen er i . mdb-filformat, skal du fjerne sikkerheden på brugerniveau.

  4. Sikkerhedskopiere din database. Hvis du vil have mere at vide, skal du se Beskyt dine data med processer til sikkerhedskopiering og gendannelse.

Tip    Overvej at installere Microsoft SQL Server Express Edition på dit skrivebord, der understøtter op til 10 GB, og som er en gratis og nemmere måde at køre gennem og kontrollere din overførsel på. Når du opretter forbindelse, skal du bruge LocalDB som databaseforekomsten.

Tip    Hvis det er muligt, skal du bruge en enkeltstående version af Access. Hvis du kun kan bruge Office 365, skal du bruge databaseprogrammet Access 2010 til at overføre din Access-database, når du bruger SSMA. Hvis du vil have mere at vide, skal du se Microsoft Access Database Engine 2010redistributed.

Kør SSMA

Microsoft leverer Microsoft SQL Server migration Assistant (SSMA) for at gøre det nemmere at overføre. SSMA overfører hovedsageligt tabeller og vælger forespørgsler uden parametre. Formularer, rapporter, makroer og VBA-moduler konverteres ikke. SQL Server-metadata Stifinder viser dine Access-databaseobjekter og SQL Server-objekter, så du kan gennemse det aktuelle indhold af begge databaser. Disse to forbindelser gemmes i din overførsels fil, hvis du vil overføre flere objekter fremover.

Bemærk    Overførselsprocessen kan tage lidt tid, afhængigt af størrelsen på dine databaseobjekter og den mængde data, der skal overføres.

  1. Hvis du vil overføre en database ved hjælp af SSMA, skal du først downloade og installere softwaren ved at dobbeltklikke på den hentede msi-fil. Sørg for, at du installerer den relevante 32-eller 64-bit version for din computer.

  2. Når du har installeret SSMA, skal du åbne det på dit skrivebord, helst fra computeren med Access-databasefilen.

    Du kan også åbne den på en computer, der har adgang til Access-databasen fra netværket i en delt mappe.

  3. Følg start vejledningen i SSMA for at angive grundlæggende oplysninger som placering af SQL Server, Access-databasen og objekter, der skal overføres, forbindelsesoplysninger, og om du vil oprette sammenkædede tabeller.

  4. Hvis du overfører til SQL Server 2016 eller nyere og vil opdatere en sammenkædet tabel, skal du tilføje en ROWVERSION-kolonne ved at vælge Gennemse værktøjer > Project-indstillinger > Generelt.

    Feltet ROWVERSION er med til at undgå post konflikter. Access bruger dette ROWVERSION-felt i en sammenkædet SQL Server-tabel til at bestemme, hvornår posten sidst blev opdateret. Hvis du tilføjer feltet ROWVERSION til en forespørgsel, bruges det også til at vælge rækken igen efter en opdateringshandling. Dette forbedrer effektiviteten ved at undgå problemer med at skrive konflikter og post sletnings scenarier, der kan opstå, når Access registrerer forskellige resultater fra den oprindelige indsendelse, f. eks. kan forekomme med datatypen flydende tal og udløsere, der ændrer artikler. Du bør dog undgå at bruge feltet ROWVERSION i formularer, rapporter eller VBA-kode. Du kan finde flere oplysninger i ROWVERSION.

    Bemærk    Undgå forvirring ROWVERSION med tidsstempler. Selvom tidsstempel for nøgleord er et synonym for ROWVERSION i SQL Server, kan du ikke bruge ROWVERSION som en metode til at tidsstemple en dataindtastning.

  5. Hvis du vil angive nøjagtige datatyper, skal du vælge Gennemse værktøjer > Projektindstillinger > type tilknytning. Hvis du for eksempel kun gemmer engelsk tekst, kan du bruge datatypen varchar i stedet for nvarchar .

Konvertere objekter

SSMA konverterer Access-objekter til SQL Server-objekter, men de kopierer ikke objekterne med det samme. SSMA indeholder en liste over de følgende objekter, der skal overføres, så du kan beslutte, om du vil flytte dem til SQL Server-databasen:

  • Tabeller og kolonner

  • Vælg forespørgsler uden parametre.

  • Primære og fremmede nøgler

  • Indeks og standardværdier

  • Kontrollér begrænsninger (Tillad kolonne egenskaben kolonnelængde, kolonnevalideringsregel, tabel validering)

Som en bedste fremgangsmåde kan du bruge SSMA-vurderingsrapporten, som viser konverterings resultaterne, herunder fejl, advarsler, oplysningsmeddelelser, tids estimater for udførelse af overførslen, og individuelle fejl korrektions trin, der skal udføres, før du reelt flytter objekter.

Konvertering af databaseobjekter tager objekt definitionerne fra Access-metadataene, konverterer dem til tilsvarende Transact-SQL-syntaks (T-SQL)og indlæser derefter disse oplysninger i projektet. Du kan derefter få vist SQL Server-eller SQL Azure-objekterne og deres egenskaber ved hjælp af SQL Server eller SQL Azure metadata Explorer.

Hvis du vil konvertere, indlæse og overføre objekter til SQL Server, skal du følge denne vejledning.

Tip    Når du har overført din Access-database, skal du gemme projektfilen til senere brug, så du kan overføre dine data igen til test eller endelig overførsel.

Sammenkæd tabeller

Overvej at installere den nyeste version af SQL Server OLE DB og ODBC-driverne i stedet for at bruge de oprindelige SQL Server-drivere, der leveres sammen med Windows. Ikke alene er de nyere drivere hurtigere, men de understøtter nye funktioner i Azure SQL, som de tidligere drivere ikke har. Du kan installere driverne på hver computer, hvor den konverterede database bruges. Hvis du vil have mere at vide, skal du se Microsoft OLE DB driver 18 til SQL Server og Microsoft ODBC-driver 17 til SQL Server.

Når du har overført Access-tabellerne, kan du oprette et link til tabellerne i SQL Server, som nu er vært for dine data. Når du opretter kæder direkte fra Access, får du også en enklere måde at få vist dine data i i stedet for at bruge de mere komplekse SQL Server Management-værktøjer.  Du kan forespørge på og redigere sammenkædede data afhængigt af de tilladelser, der er konfigureret af din SQL Server-databaseadministrator.

Bemærk    Hvis du opretter en ODBC DSN-fil, når du opretter et link til din SQL Server-database under sammenkædningen, skal du enten oprette den samme DSN på alle de computere, der bruger det nye program eller programmeringsmæssigt bruge den forbindelsesstreng, der er gemt i DSN-filen.

Du kan finde flere oplysninger i oprette et link til eller importere data fra en Azure SQL Server-database og importere eller oprette en kæde til data i en SQL Server-database.

Tip   Glem ikke at bruge styring af sammenkædede tabeller i Access til nemt at opdatere og gendanne tabeller. Hvis du vil have mere at vide, skal du se administrere sammenkædede tabeller.

Test og Revider

I de følgende afsnit beskrives almindelige problemer, du kan støde på under overførslen, og hvordan du håndterer dem.

Forespørgsler

Kun udvælgelsesforespørgsler konverteres. andre forespørgsler er ikke, herunder udvælgelsesforespørgsler, der tager parametre. Nogle forespørgsler kan muligvis ikke konverteres fuldstændigt og SSMA rapporterer fejl i forespørgsler under konverteringsprocessen. Du kan redigere objekter, der ikke skal konverteres, manuelt ved hjælp af en T-SQL-syntaks. Syntaksfejl kan også kræve manuel konvertering af Access-specifikke funktioner og datatyper til SQL Server. Du kan få mere at vide under sammenligning af Access SQL med SQL Server TSQL.

Datatyper

Access og SQL Server har tilsvarende datatyper, men vær opmærksom på følgende potentielle problemer.

Stort tal    Datatypen stort tal gemmer en ikke-pengemæssig, numerisk værdi og er kompatibel med datatypen SQL bigint. Du kan bruge denne datatype til effektivt at beregne store tal, men det kræver brug af Access 16 (16.0.7812 eller nyere). accdb-database filformatet og fungerer bedre med 64-bit versionen af Access. Hvis du vil have mere at vide, skal du se brug af datatypen stort tal og vælge mellem 64-bit-eller 32-bit-versionen af Office.

Ja/Nej    En Access-kolonne med ja/nej konverteres som standard til et SQL Server-bit-felt. Hvis du vil undgå at låse post, Sørg for, at feltet bit er indstillet til ikke at tillade NULL-værdier. I SSMA kan du vælge en bit kolonne for at angive egenskaben Tillad Null-værdier til Nej. I TSQL skal du bruge Create Table eller ALTER TABLE -sætning.

Dato og klokkeslæt    Der er flere overvejelser om dato og klokkeslæt:

  • Hvis databasens kompatibilitetsniveau er 130 (SQL Server 2016) eller nyere, og en sammenkædet tabel indeholder en eller flere DateTime-eller datetime2-kolonner, kan tabellen returnere meddelelsen #deleted i resultaterne. Hvis du vil have mere at vide, skal du se Access-sammenkædet tabel til SQL-Server database returnerer #deleted.

  • Brug datatypen datetime2 , som har et større datointerval end DateTime.

  • Når du forespørger om datoer i SQL Server, skal du tage hensyn til klokkeslættet og datoen. Det kunne f.eks. være:

    • DateOrdered mellem 1/1/19 og 1/31/19 indeholder muligvis ikke alle ordrer.

    • DateOrdered mellem 1/1/19 00:00:00 AM og 1/31/19 11:59:59 PM omfatter alle ordrer.

Vedhæftet fil   Datatypen vedhæftet fil gemmer en fil i Access-databasen. I SQL Server har du flere muligheder for at overveje. Du kan udtrække filerne fra Access-databasen og derefter overveje at gemme links til filerne i din SQL Server-database. Du kan også bruge FILESTREAM-, FileTables-eller Remote BLOB store (RBS) for at bevare vedhæftede filer, der er gemt i SQL Server-databasen.

Hyperlink    Access-tabeller har link kolonner, som SQL Server ikke understøtter. Disse kolonner bliver som standard konverteret til nvarchar-kolonner (max) i SQL Server, men du kan tilpasse tilknytningen for at vælge en mindre datatype. I din Access-løsning kan du stadig bruge hyperlink funktionsmåden i formularer og rapporter, hvis du angiver egenskaben hyperlink for kontrolelementet til sand.

Felt med flere værdier    Access-feltet med flere værdier konverteres til SQL Server som et ntext-felt, der indeholder det separerede sæt af værdier. Da SQL Server ikke understøtter datatyper med flere værdier, der afspejler en mange-til-mange-relation, kræves der muligvis arbejde på design og konvertering.

Hvis du vil have mere at vide om tilknytning af Access-og SQL Server-datatyper, skal du se Sammenlign datatyper.

Bemærk    Felter med flere værdier konverteres ikke og blev udgået i Access 2010.

Hvis du vil have mere at vide, skal du se dato-og klokkeslæts typer, streng og binær-typerog numeriske typer.

Visual Basic

Selvom VBA ikke understøttes af SQL Server, skal du bemærke følgende mulige problemer:

VBA-funktioner i forespørgsler    Access-forespørgsler understøtter VBA-funktioner på data i en forespørgsels kolonne. Men Access-forespørgsler, der bruger VBA-funktioner, kan ikke køres på SQL Server, så alle ønskede data overføres til Microsoft Access til behandling. I de fleste tilfælde skal disse forespørgsler konverteres til pass-through-forespørgsler.

Brugerdefinerede funktioner i forespørgsler    Microsoft Access-forespørgsler understøtter brugen af funktioner, der er defineret i VBA-moduler, til at behandle data, der sendes til dem. Forespørgsler kan være enkeltstående forespørgsler, SQL-sætninger i formular/rapport-postkilder, datakilder til kombinationsfelter og lister i formularer, rapporter og tabelfelter samt standard-eller valideringsregel udtryk. SQL Server kan ikke køre disse brugerdefinerede funktioner. Du skal muligvis omdesigne disse funktioner manuelt og konvertere dem til gemte procedurer på SQL Server.

Optimere ydeevnen

For det vigtigste er den vigtigste måde at optimere ydeevnen på med den nye back-end-SQL Server at beslutte, hvornår du skal bruge lokale forespørgsler eller fjernforespørgsler. Når du overfører dine data til SQL Server, flyttes du også fra en filserver til en klient server databasemodel af databasen. Følg disse generelle retningslinjer:

  • Kør små, skrivebeskyttede forespørgsler på klienten for at få den hurtigste adgang.

  • Kør lange, Læs/skriv forespørgsler på serveren for at udnytte den større processorkraft.

  • Minimer netværkstrafik med filtre og sammenlægning for kun at overføre de data, du har brug for.

Optimere ydeevnen i klient server databasemodellen

Hvis du vil have mere at vide, skal du se oprette en pass-through-forespørgsel.

Følgende er yderligere, anbefalede retningslinjer.

Indfør logik på serveren    Dit program kan også bruge visninger, brugerdefinerede funktioner, lagrede procedurer, beregnede felter og udløsere til at centralisere og dele programlogik, virksomhedsregler og politikker, komplekse forespørgsler, datavalidering og kode for referentiel integritet på Server i stedet for på klienten. Spørg dig selv, kan denne forespørgsel eller opgave udføres på serveren bedre og hurtigere? Til sidst skal du teste hver forespørgsel for at sikre optimal ydeevne.

Brug af visninger i formularer og rapporter    I Access skal du gøre følgende:

  • For formularer skal du bruge en SQL-visning til en skrivebeskyttet formular og en SQL-indekseret visning for en læse-og skrive formular som postkilde.

  • For rapporter skal du bruge en SQL-visning som postkilde. Du kan dog oprette en separat visning for hver rapport, så du nemmere kan opdatere en bestemt rapport uden at påvirke andre rapporter.

Minimer indlæsning af data i en formular eller rapport    Vis ikke data, før brugeren beder om det. Hvis du f. eks. lader Egenskaben RecordSource være tom, skal du vælge et filter i formularen og derefter udfylde egenskaben Postkilde med dit filter. Eller brug WHERE-delsætningen for DoCmd. ÅbnFormular og DoCmd. ÅbnRapport til at få vist den eller de nøjagtige poster, brugeren har brug for. Overvej at deaktivere postnavigation.

Vær forsigtig med uensartede forespørgsler   Undgå at køre en forespørgsel, der kombinerer en tabel med en lokal Access-tabel og en SQL Server-tabel, også kaldet en hybrid forespørgsel. Denne type forespørgsel kræver stadig adgang til at downloade alle SQL Server-data til den lokale computer og derefter køre forespørgslen, kører den ikke forespørgslen i SQL Server.

Hvornår skal du bruge lokale tabeller?    Overvej at bruge lokale tabeller til data, der sjældent ændrer sig, f. eks. listen over stater eller provinser i et land eller område. Statiske tabeller bruges ofte til filtrering og kan udføre bedre opgaver på Access-front end-siden.

Hvis du vil have mere at vide, skal du se tilpasnings rådgiver for database programmer, bruge Ydeevneanalyse til at optimere en Access-databaseog optimere Microsoft Office Access-programmer, der er knyttet til SQL Server.

Se også

Overførsels vejledning til Azure-database

Microsoft data migration Blog

Microsoft Access til SQL Server overføre, konvertere og konvertere

Måder at dele en Access-skrivebordsdatabase på

Bemærk!:  Denne side er oversat ved hjælp af automatisering og kan indeholde grammatiske fejl og unøjagtigheder. Det er vores hensigt, at dette indhold skal være nyttigt for dig. Var disse oplysninger nyttige? Her er artiklen på engelsk, så du kan sammenligne.

Udvid dine Office-færdigheder
Gå på opdagelse i kurser
Få nye funktioner først
Bliv Office Insider

Var disse oplysninger nyttige?

Tak for din feedback!

Tak for din feedback! Det lyder, som om det vil kunne hjælpe, hvis du bliver sat i forbindelse med en af vores Office-supportteknikere.

×