Log på med Microsoft
Log på, eller opret en konto.
Hej
Markér en anden konto.
Du har flere konti
Vælg den konto, du vil logge på med.
Overfør en Access-database til SQL Server

Vi har alle begrænsninger, og en Access-database er ingen undtagelse. En Access-database har f.eks. en størrelsesbegrænsning på 2 GB og kan ikke understøtte mere end 255 samtidige brugere. Så når det er tid til, at din Access-database går videre til det næste niveau, kan du overføre til SQL Server. SQL Server (uanset om det er lokalt eller i Azure-skyen) understøtter større mængder data, flere 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 motiverer dig forhåbentlig til at bruge Access til fremtidige databaseløsninger. Guiden Tilpasning blev fjernet fra Access i Access 2013, så nu kan du bruge Microsoft SQL Server Migration Assistant (SSMA). Følg disse trin for at overføre korrekt.

Faserne i databaseoverførsel til SQL Server

Inden du går i gang

De følgende afsnit indeholder baggrundsoplysninger 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 kaldes at opdele databasen og er designet til at lette deling 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, ligner den en opdelt database i den SQL Server fungerer som en ny back-end for de data, der nu er placeret på en server.

Derfor kan du stadig bevare front end Access-databasen med sammenkædede tabeller til de SQL Server tabeller. Du kan effektivt udnytte fordelene ved hurtig programudvikling, som en Access-database giver, sammen med skalerbarheden af SQL Server.

SQL Server fordele

Har du stadig brug for noget overbevisende at overføre til SQL Server? Her er nogle ekstra fordele, du kan overveje:

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

  • Øget tilgængelighed    Med SQL Server kan du dynamisk sikkerhedskopiere databasen, enten trinvist eller fuldstændigt, 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    Den SQL Server database fungerer normalt bedre end en Access-database, især med en stor database i terabytestørrelse. Desuden behandler SQL Server forespørgsler meget hurtigere og effektivt ved at behandle forespørgsler parallelt ved at bruge flere oprindelige tråde i en enkelt proces til at håndtere brugeranmodninger.

  • Forbedret sikkerhed    Ved hjælp af en pålidelig forbindelse integreres SQL Server med Windows-systemsikkerhed for at give en enkelt integreret adgang til netværket og databasen, hvilket anvender det bedste fra begge sikkerhedssystemer. Det gør det meget nemmere at administrere komplekse sikkerhedssystemer. SQL Server er det ideelle lager til følsomme oplysninger som cpr-numre, kreditkortdata og adresser, der er fortrolige.

  • Øjeblikkelig gendannelse     Hvis operativsystemet går ned, eller strømmen går, kan SQL Server automatisk gendanne databasen til en ensartet tilstand i løbet af få minutter og uden nogen databaseadministratorindgrins.

  • Brug af VPN    Access og VPN (Virtual Private Networks) kan ikke enes. Men med SQL Server kan fjernbrugere stadig bruge Access-front end-databasen på et skrivebord og den SQL Server back-end, der er placeret bag VPN-firewallen.

  • 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-mulighed

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

  • Enkelt database/elastiske puljer    Denne indstilling har sit eget sæt ressourcer, der administreres via en SQL Database-server. En enkelt database er ligesom en indeholdt database i SQL Server. Du kan også tilføje en elastisk pulje, 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, programrettelser og genoprettelse. Men der er ingen garanti for nøjagtig vedligeholdelsestid og overførsel fra SQL Server kan være svært.

  • Administreret forekomst    Denne indstilling er en samling af system- og brugerdatabaser med et delt sæt ressourcer. En administreret forekomst er ligesom en forekomst af SQL Server-databasen, der er meget kompatibel med SQL Server i det lokale miljø. En administreret forekomst har indbyggede sikkerhedskopier, programrettelser, 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 ingen garanteret nøjagtig vedligeholdelsestid.

  • Azure Virtual Machine    Denne indstilling giver dig mulighed for at køre SQL Server inde i en virtuel maskine i Azure-skyen. Du har fuld kontrol over SQL Server-programmet og en nem overførselssti. Men du skal administrere dine sikkerhedskopier, programrettelser og genoprettelse.

Du kan finde flere oplysninger under Vælge din databaseoverførselssti til Azure og Hvad er Azure SQL?.

Første trin

Der er et par problemer, du kan løse på et frontlinjet trin, som kan hjælpe med at strømline overførselsprocessen, før du kører SSMA:

  • Tilføj tabelindekser 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, at en sammenkædet tabel har en primær nøgle, hvis tabellen kan opdateres.

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

  • Fjerne kolonnen Vedhæftet fil    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 sikkerhed på brugerniveau.

  4. Sikkerhedskopiér din database. Du kan få mere at vide under Beskyt dine data med processer til sikkerhedskopiering og gendannelse.

Tip!    Overvej at installere Microsoft SQL Server Express udgave på skrivebordet, som understøtter op til 10 GB, og som er en gratis og nemmere måde at gennemgå og kontrollere din overførsel på. Når du opretter forbindelse, skal du bruge LocalDB som databaseforekomst.

Tip!    Hvis det er muligt, skal du bruge en enkeltstående version af Access. Hvis du kun kan bruge Microsoft 365, skal du bruge Access 2010-databaseprogrammet til at overføre din Access-database, når du bruger SSMA. Du kan få mere at vide under Microsoft Access Database Engine 2010 Redistributable.

Kør SSMA

Microsoft leverer Microsoft SQL Server Migration Assistant (SSMA) for at gøre overførslen nemmere. SSMA overfører hovedsageligt tabeller og udvælgelsesforespørgsler uden parametre. Formularer, rapporter, makroer og VBA-moduler konverteres ikke. Den SQL Server Metadata Explorer viser dine Access-databaseobjekter og SQL Server objekter, så du kan gennemse det aktuelle indhold i begge databaser. Disse to forbindelser gemmes i overførselsfilen, hvis du beslutter dig for at overføre flere objekter i fremtiden.

Bemærk!    Overførselsprocessen kan tage lidt tid, afhængigt af størrelsen på dine databaseobjekter og mængden af 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 installere den relevante 32- eller 64-bit version til computeren.

  2. Når du har installeret SSMA, skal du åbne den på skrivebordet, 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 startvejledningen i SSMA for at give grundlæggende oplysninger som f.eks. SQL Server placering, 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 rækkeversionskolonne ved at vælge Gennemse værktøjer > Projektindstillinger > Generelt.

    Feltet rækkeversion hjælper med at undgå postkonflikter. Access bruger dette rækkeversionsfelt i en SQL Server sammenkædet tabel til at bestemme, hvornår posten sidst blev opdateret. Hvis du føjer rækkeversionsfeltet til en forespørgsel, bruger Access det også til at vælge rækken igen efter en opdateringshandling. Dette forbedrer effektiviteten ved at hjælpe med at undgå skrivekonfliktfejl og scenarier for sletning af poster, der kan opstå, når Access registrerer forskellige resultater fra den oprindelige indsendelse, f.eks. kan forekomme med flydende taldatatyper og udløsere, der ændrer kolonner. Undgå dog at bruge rækkeversionsfeltet i formularer, rapporter eller VBA-kode. Du kan få mere at vide under rækkeversion.

    Bemærk!    Undgå at forveksle rækkeversion med tidsstempler. Selvom tidsstemplet for nøgleordet er et synonym for rækkeversion i SQL Server, kan du ikke bruge rækkeversion som en måde at tidsstemplere en dataindtastning på.

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

Konvertér objekter

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

  • Tabeller og kolonner

  • Vælg Forespørgsler uden parametre.

  • Primære og fremmede nøgler

  • Indekser og standardværdier

  • Kontrollér begrænsninger (tillad kolonneegenskab uden længde, kolonnevalideringsregel, tabelvalidering)

Som bedste fremgangsmåde kan du bruge SSMA-vurderingsrapporten, som viser konverteringsresultaterne, herunder fejl, advarsler, oplysende meddelelser, tidsestimater for udførelse af overførslen og individuelle fejlrettelser, der skal udføres, før du rent faktisk flytter objekterne.

Konvertering af databaseobjekter tager objektdefinitionerne fra Access-metadataene, konverterer dem til tilsvarende Transact-SQL (T-SQL) syntaks og indlæser derefter disse oplysninger i projektet. Du kan derefter få vist objekterne SQL Server eller SQL Azure 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-drivere i stedet for at bruge de oprindelige SQL Server drivere, der leveres sammen med Windows. De nyere drivere er ikke kun hurtigere, de understøtter også nye funktioner i Azure SQL, som de tidligere drivere ikke gør. Du kan installere driverne på hver computer, hvor den konverterede database bruges. Du kan få mere at vide under 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 en kæde til tabellerne i SQL Server, som nu hoster dine data. Sammenkædning direkte fra Access giver dig også en enklere måde at få vist dine data på i stedet for at bruge de mere komplekse administrationsværktøjer til SQL Server.  Du kan forespørge om 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, når du opretter en kæde til din SQL Server-database under sammenkædningsprocessen, skal du enten oprette det samme DSN på alle computere, der bruger det nye program, eller bruge de forbindelsesstreng, der er gemt i DSN-filen.

Du kan få mere at vide under Oprette kæde 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 sammenkæde tabeller. Du kan få mere at vide under Administrer 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 kan håndtere dem.

Forespørgsler

Kun udvælgelsesforespørgsler konverteres. andre forespørgsler er ikke, herunder udvælgelsesforespørgsler, der tager parametre. Nogle forespørgsler konverterer muligvis ikke helt, og SSMA-rapporterer forespørgselsfejl under konverteringsprocessen. Du kan manuelt redigere objekter, der ikke konverteres, ved hjælp af T-SQL-syntaks. Syntaksfejl kan også kræve, at Access-specifikke funktioner og datatyper konverteres manuelt til SQL Server. Du kan finde flere oplysninger i Sammenligning af Access SQL og SQL Server TSQL.

Datatyper

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

Stort tal    Datatypen Stort tal gemmer en ikke-monetær, numerisk værdi og er kompatibel med sql-datatypen bigint. Du kan bruge denne datatype til effektivt at beregne store tal, men det kræver brug af Access 16-filformatet (16.0.7812 eller nyere) og fungerer bedre med 64-bit versionen af Access. Du kan få mere at vide under Brug af datatypen Stort tal og Vælg mellem 64-bit- eller 32-bit-versionen af Office.

Ja/Nej    Som standard konverteres en Ja/Nej-kolonne i Access til et SQL Server bitfelt. For at undgå postlåsning skal du sørge for, at bitfeltet er indstillet til ikke at tillade NULL-værdier. I SSMA kan du markere bitkolonnen for at angive egenskaben Tillad null-værdier til NEJ. I TSQL skal du bruge sætningerne CREATE TABLE eller ALTER TABLE .

Dato og klokkeslæt    Der er flere overvejelser i forbindelse med dato og klokkeslæt:

  • Hvis kompatibilitetsniveauet for databasen er 130 (SQL Server 2016) eller højere, og en sammenkædet tabel indeholder en eller flere datetime- eller datetime2-kolonner, returnerer tabellen muligvis meddelelsen #deleted i resultaterne. Du kan finde flere oplysninger i Access-sammenkædet tabel til SQL-Server database returnerer #deleted.

  • Brug datatypen Dato og klokkeslæt i Access til at knytte til datatypen datetime. Brug den udvidede dato og klokkeslæt-datatype i Access til at knytte til datatypen datetime2 , som har et større dato- og tidsinterval. Du kan få mere at vide under Brug af udvidet dato og klokkeslæt-datatype.

  • Når du forespørger efter datoer i SQL Server, skal du tage højde for klokkeslæt samt dato. Det kunne f.eks. være:

    • DateOrdered Between 01-01-2019 og 31-01-2019 omfatter muligvis ikke alle ordrer.

    • DateOrdered Between 1/1/19 00:00:00 And 31-01-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 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) til at bevare vedhæftede filer, der er gemt i SQL Server-databasen.

Link    Access-tabeller har hyperlinkkolonner, som SQL Server ikke understøtter. Som standard konverteres disse kolonner til kolonnerne nvarchar(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 hyperlinkfunktionsmåden i formularer og rapporter, hvis du indstiller egenskaben Link for kontrolelementet til sand.

Felt med flere værdier    Feltet med flere værdier i Access konverteres til SQL Server som et ntext-felt, der indeholder det afgrænsede 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.

Du kan få mere at vide om tilknytning af Access og SQL Server datatyper under Sammenlign datatyper.

Bemærk!    Felter med flere værdier konverteres ikke.

Du kan få mere at vide under Dato- og klokkeslætstyper, Streng og binære typer og Numeriske typer.

Visual Basic

Selvom VBA ikke understøttes af SQL Server, skal du være opmærksom på følgende mulige problemer:

VBA-funktioner i forespørgsler    Access-forespørgsler understøtter VBA-funktioner på data i en forespørgselskolonne. 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 overføres til dem. Forespørgsler kan være enkeltstående forespørgsler, SQL-sætninger i formular-/rapportpostkilder, datakilder for kombinationsfelter og lister i formularer, rapporter og tabelfelter samt standard- eller valideringsregeludtryk. 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.

Optimer ydeevnen

Langt den vigtigste måde at optimere ydeevnen med din nye back-end-SQL Server er at beslutte, hvornår du skal bruge lokale forespørgsler eller fjernforespørgsler. Når du overfører dine data til SQL Server, flytter du også fra en filserver til en klientserverdatabasemodel for databehandling. Følg disse generelle retningslinjer:

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

  • Kør lange læse-/skriveforespø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.

Optimer ydeevnen i klientserverdatabasemodellen

Du kan finde flere oplysninger under Opret en pass-through-forespørgsel.

Følgende er yderligere, anbefalede retningslinjer.

Placere logik på serveren     Dit program kan også bruge visninger, brugerdefinerede funktioner, lagrede procedurer, beregnede felter og udløsere til at centralisere og dele programlogik, forretningsregler og politikker, komplekse forespørgsler, datavalidering og referentiel integritetskode på serveren 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    Gør følgende i Access:

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

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

Minimere indlæsning af data i en formular eller rapport    Vis ikke data, før brugeren beder om det. Hold f.eks. egenskaben postkilde tom, få brugerne til at vælge et filter i formularen, og udfyld derefter egenskaben postkilde med dit filter. Eller brug where-delsætningen i DoCmd.OpenForm og DoCmd.OpenReport til at vise de nøjagtige poster, brugeren skal bruge. Overvej at slå postnavigation fra.

Vær forsigtig med heterogene forespørgsler   Undgå at køre en forespørgsel, der kombinerer en lokal Access-tabel og SQL Server sammenkædet tabel, nogle gange kaldet en hybridforespørgsel. Denne type forespørgsel kræver stadig, at Access downloader alle de SQL Server data til den lokale computer og derefter kører forespørgslen. Den kører ikke forespørgslen i SQL Server.

Hvornår skal du bruge lokale tabeller?    Overvej at bruge lokale tabeller til data, der sjældent ændres, f.eks. listen over delstater eller provinser i et land eller område. Statiske tabeller bruges ofte til filtrering og kan fungere bedre i Front End i Access.

Du kan få mere at vide under Optimeringsrådgivning til databaseprogram, Brug Effektivitetsanalyse til at optimere en Access-database og Optimering af Microsoft Office Access-programmer, der er sammenkædet med SQL Server.

Se også

Vejledning i overførsel af Azure-database

Microsoft Data Migration Blog

Microsoft Access til SQL Server overførsel, konvertering og tilpasning af størrelse

Måder at dele en Access-skrivebordsdatabase på

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.

Var disse oplysninger nyttige?

Hvor tilfreds er du med kvaliteten af sproget?
Hvad påvirkede din oplevelse?
Når du trykker på Send, bliver din feedback brugt til at forbedre Microsoft-produkter og -tjenester. Din it-administrator kan indsamle disse data. Erklæring om beskyttelse af personlige oplysninger.

Tak for din feedback!

×