Overføre en Access-database til SQL Server

Bemærk!: Vi vil gerne give dig den mest opdaterede hjælp, så hurtigt vi kan, på dit eget sprog. 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. Vil du fortælle os, om oplysningerne var nyttige for dig, nederst på denne side? Her er artiklen på engelsk så du kan sammenligne.

Vi alle har begrænsninger, og en Access-database er ingen undtagelse. For eksempel en Access-database har en størrelsesbegrænsning på 2 GB og kan ikke understøtter mere end 255 samtidige brugere. Når det er tid til din Access-database til at gå videre til næste niveau, kan du så kan overføre til SQL Server. SQL Server (om lokalt eller i Azure skybaseret) understøtter større mængde data, flere samtidige brugere, og har større kapacitet end af JET/ACE-databaseprogram. Denne vejledning giver dig en glat start til din SQL Server-Rejse, hjælper med at bevare Access-front end-løsninger, du har oprettet, og forhåbentlig end motiverer dig at bruge Access til fremtidige databaseløsninger. Guiden Databasekonvertering er blevet fjernet fra Access i Access 2013, og du kan bruge Microsoft SQL Server overførsel assistenten (SSMA). Følg disse trin for at gennemføre overflytningen.

Faserne af database-overførsel til SQL Server

Inden du går i gang

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

Om delte databaser

Alle Access-databaseobjekter kan enten være i en databasefil, eller de kan være gemt på to databasefiler: en front end-databasen og en back end-database. Dette kaldes at opdele databasen og er udviklet til at gøre det nemmere at dele i et miljø. Filen back end-database skal kun indeholde tabeller og relationer. Front end-filen skal 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 valgte SQL Server fungerer som en ny back end-for de data, der nu er placeret på en server.

Som et resultat, kan du stadig vedligeholde front end Access-databasen med sammenkædede tabeller til SQL Server-tabeller. Effektivt, kan du drage fordelene ved at få en hurtig udvikling, der indeholder en Access-database, sammen med skalerbarhed af SQL Server.

SQL Server fordele

Mangler nogle overbevisende til at overføre til SQL Server? Her er nogle yderligere fordele kan tænke over:

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

  • Øget tilgængelighed    Med SQL Server, du kan dynamisk Sikkerhedskopiér, enten delvis eller fuldstændig, databasen, mens det 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 udfører som regel bedre end en Access-database, især med en stor, terabyte størrelse database. 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 anmodninger.

  • Øget sikkerhed    Ved hjælp af en pålidelig forbindelse, integreres SQL Server med Windows systemsikkerhed til at levere en integreret adgang til netværket og databasen, anvender bedste to sikkerhedssystemer. Dette gør det meget nemmere at administrere komplekse sikkerhed farveskemaer. SQL Server er den ideelle lagerplads for følsomme oplysninger som CPR-numre, kreditkortoplysningerne, og adresser, der er fortrolige.

  • Øjeblikkelig gendannelse    Hvis operativsystemet går ned eller power går ud af, kan SQL Server automatisk gendanne databasen til en konsistent tilstand i løbet af få minutter og, uden database administrator.

  • Brugen af VPN    Få adgang til og virtuelt privat netværk (VPN) modtager ikke. Men med SQL Server, eksterne brugere kan bruge stadig bruge Access front end-databasen på en computer og den SQL Server back-end findes bag firewallen VPN.

Første trin

Der er et par problemer, du kan tale om på forhånd, der kan hjælpe med at strømline overførselsprocessen, før du kører SSMA:

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

  • Kontrollere primær/fremmed nøgle-relationer    Kontrollér, at disse relationer er baseret på felter med datatyper, der er ensartet og skriftstørrelser. SQL Server understøtter ikke joinforbundne kolonner med forskellige datatyper og skriftstørrelser i begrænsninger på fremmede nøgler.

  • Fjerne kolonnen vedhæftet fil    SSMA overføre ikke tabeller, der indeholder kolonnen vedhæftet fil.

Inden du kører SSMA, skal du gøre følgende første.

  1. Luk Access-databasen.

  2. Sørg for, at aktuelle brugere, der er knyttet til databasen, også lukke databasen.

  3. Hvis databasen er i .mdb-filformat, derefter fjerne sikkerhed på brugerniveau.

  4. Sikkerhedskopiere din database. Du kan finde flere oplysninger, se beskytte dine data med sikkerhedskopiering og gendannelse.

Tip!    Overvej at installere Microsoft SQL Server Express edition på din computer, som understøtter op til 10 GB og er et gratis og nemmere måde at køre via og kontrollere din migrering.

Tip!    Hvis det er muligt at bruge en enkeltstående version af Access. Hvis du kan kun bruge Office 365, derefter bruge Access 2010-databaseprogram til at overføre din Access-database, når du bruger SSMA. Du kan finde flere oplysninger, Microsoft Access Database Engine 2010 Redistributable.

Køre SSMA

Microsoft yder Microsoft SQL Server Migration Assistant (SSMA) for at gøre det nemmere at overførsel. SSMA overfører hovedsageligt tabeller og select-forespørgsler uden parametre. Formularer, rapporter, makroer og VBA-moduler konverteres ikke.

  1. Overflytte en database ved hjælp af SSMA, første hente og installere softwaren ved at dobbeltklikke på den hentede MSI-fil. Kontrollér, at du har installeret de relevante 32 eller 64-bit versionen for din computer.

  2. Når du har installeret SSMA, kan 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 vejledningen begyndelsen i SSMA til at levere grundlæggende oplysninger som placering af SQL Server, Access-database og objekter til at overføre oplysninger om forbindelsen, 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, kan du tilføje et tidsstempelkolonne ved at vælge Gennemse værktøjer > Projektindstillingerne > Generelt. Du kan finde flere oplysninger, se sammenkædet tabel i Access til SQL Server-database returnerer #deleted.

  5. For at angive præcis datatyper, skal du vælge Gennemse værktøjer > Projektindstillingerne > Type tilknytning. Hvis du gemmer kun engelsk tekst, kan du bruge datatypen varchar i stedet for nvarchar .

SQL Server Metadata Explorer viser din Access-databaseobjekter og SQL Server-objekter, så du kan gennemse aktuelle indholdet af begge databaser. Disse to forbindelser gemmes i din overførselsfil, hvis du beslutter at overføre flere objekter i fremtiden.

Bemærk!    Overførselsprocessen kan gå et stykke tid afhængigt af størrelsen på dine databaseobjekter og mængden data, der skal overføres.

Konvertere objekter

SSMA konverterer Access-objekter til SQL Server-objekter, men det kopiere ikke objekterne det samme. SSMA indeholder en liste over de følgende objekter til at overføre, 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

  • Indeks og standardværdier

  • Se begrænsninger (Tillad nul længde kolonneegenskab, kolonne valideringsregel, tabel validering)

Som en bedste fremgangsmåde bruge rapporten SSMA vurdering, som viser konverteringen resultater, herunder fejl, advarsler, informativ meddelelser gang beregner for at udføre overførslen, og enkelte fejl rettelse hvad du skal gøre, før du rent faktisk flytte den objekter.

Konvertering af databaseobjekter tager objektdefinitioner fra Access-metadata, konverterer dem til tilsvarende Transact-SQL (T-SQL) syntaksenog indlæser derefter oplysningerne i projektet. Derefter kan du se SQL Server eller SQL Azure-objekterne og deres egenskaber ved hjælp af SQL Server eller SQL Azure Metadata Stifinder.

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

Tip!    Når du har overflyttet din Access-database, Gem projektfil til senere brug, så du kan overføre dine data igen til test eller endelige overførsel.

Sammenkæd tabeller

Overvej at installere den nyeste version af SQL Server OLE DB og ODBC-drivere i stedet for ved hjælp af de oprindelige driver til SQL Server, der følger med Windows. Ikke kun er de nyere drivere hurtigere, men de understøtter nye funktioner i Azure SQL, som de forrige drivere ikke. Du kan installere drivere på hver enkelt computer, hvor den konverterede database bruges. Se Microsoft OLE DB Driver 18 til SQL Server og Microsoft ODBC-Driver 17 til SQL Serverkan finde flere oplysninger.

Når du overfører Access-tabeller, kan du sammenkæde tabeller i SQL Server som nu vært for dine data. Sammenkæde direkte fra Access giver dig også en nemmere måde at få vist dine data i stedet for at bruge de mere komplekse værktøjer til administration af SQL Server.  Du kan forespørge og redigere sammenkædede data afhængigt af de tilladelser, der er oprettet af din SQL Server-databaseadministrator.

Bemærk!    Hvis du opretter en ODBC DSN, når du sammenkæder med SQL Server-databasen under sammenkædningen, kan du oprette den samme DSN på alle computere, der bruger det nye program.

Få mere at vide under Link til eller importere data fra Azure SQL Server-Database og importere eller sammenkæde med data i en SQL Server-database.

Tip! Glem ikke at bruge Styring af sammenkædede tabeller i Access til at opdatere og har gendannet kæderne tabellerne nemt. Du kan finde flere oplysninger, kan du se administrere sammenkædede tabeller.

Test og revidere

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

Forespørgsler

Vælg kun forespørgsler konverteres; andre forespørgsler er ikke, herunder Vælg forespørgsler, der tager parametre. Nogle forespørgsler kan ikke konverteres fuldstændigt, og SSMA rapporterer forespørgsel fejl under konverteringsprocessen. Du kan manuelt redigere objekter, der ikke konverterer ved hjælp af T-SQL-syntaks. Syntaksfejl kræver muligvis også konvertere Access-specifikke funktioner og datatyper til SQL Server dem manuelt. Almindelige SQL-syntaks forskelle omfatter:

  • Access bruger tegnet stjerne (*) som et jokertegn, mens T-SQL bruger procent (%).

  • Access bruger anførselstegn omkring tabelnavne og objekter. T-SQL kan bruge dem til tabelnavne med mellemrum, men det er ikke standard navngive øvelse. Objektnavne, der skal omdøbes uden mellemrum i de fleste tilfælde, men forespørgsler, skal også skrives afspejler nye tabelnavne. Brug kantede parenteser [] for tabeller, der kan være omdøbt, men som ikke svarer til navngivning af standarder.

  • Der tilføjes ekstra parenteser omkring parametre i forespørgsler, der kan fjernes.

  • SQL Server håndtere NULL-værdier og streng sammenkædning anderledes. Test forespørgsler til at sikre, at de rigtige værdier returneres.

  • For betingede sætninger bruger Access IIF mens T-SQL ofte bruger store og små bogstaver, selvom SQL Server 2012 og nyere understøtter IIF.

  • Flere funktioner og datatyper, der anvendes på en anden måde i Access og T-SQL. SSMA skal konvertere dem til dig, men du vil foretage yderligere manuelle ændringer.

Datatyper

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

Datatypen mange    Datatypen mange gemmer en ikke-valuta, numeriske værdi og er kompatibelt med SQL bigint-datatype. Du kan bruge denne datatype til at beregne effektivt store tal, men det kræver brug af Access-16 (16.0.7812 eller nyere) .accdb Webdatabase filformat og udfører bedre med 64-bit version af Access. Yderligere oplysninger, du bruger datatypen mange , og Vælg mellem den 64-bit eller 32-bit version af Office.

Vedhæftet fil   Den vedhæftede filtype gemmer en fil i Access-database. I SQL Server har du forskellige valgmuligheder du bør overveje. Du kan udtrække filerne fra Access-databasen og derefter skal du gemme links til filerne i SQL Server-databasen. Du kan også bruge FILESTREAM eller FileTables beholde vedhæftede filer, der er gemt i SQL Server-databasen.

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

Felt med flere værdier    Feltet adgang med flere værdier konverteres til SQL Server som en ntext felt, der indeholder det afgrænsede sæt af værdier. Da SQL Server ikke understøtter en med flere værdier datatype, som en mange-til-mange-relation, kan der være behov for yderligere design og konvertering.

Se sammenligne datatyperkan finde flere oplysninger om tilknytning Access og SQL Server-datatyper.

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

Visual Basic

Bemærk følgende mulige problemer, selvom VBA ikke understøttes af SQL Server:

VBA-funktioner i forespørgsler    Access-forespørgsler understøtter VBA-funktioner på dataene i en forespørgselskolonne. Men Access-forespørgsler, der bruger VBA-funktioner kan ikke køres på SQL Server, så alle ønskede dataene sendes til Microsoft Access til behandling. I de fleste tilfælde skal disse forespørgsler konverteres til remote forespørgsler ( pass-through-forespørgsler, lagrede procedurer eller visninger), der kører i SQL Server for optimal ydeevne.

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/rapport postkilder, datakilder af kombinationsfelter og lister i formularer, rapporter og tabelfelter og standard- eller validering Regeludtryk. SQL Server kan ikke køre disse brugerdefinerede funktioner. Du skal muligvis manuelt omdesigne disse funktioner og konvertere dem til lagrede procedurer på SQL Server.

Optimering af ydeevne

Langt, er den mest vigtigt metode til at optimere ydeevne med din nye, back end-SQL Server beslutte, hvornår du skal bruge lokale og eksterne forespørgsler. Når du overfører dine data til SQL Server, er du også flyttes fra en filserver til en klient / server databasemodel af computing. Følg disse generelle retningslinjer:

  • Køre små, skrivebeskyttede forespørgsler på klienten til hurtigste adgang.

  • Køre lang, skal du læse-og skriveadgang forespørgsler på serveren for at drage fordel af en større behandling potens.

  • Minimere netværkstrafik med filtre og sammenlægning til at overføre kun de data, du skal bruge.

Optimering af ydeevne i klienten server databasemodel

Programmet kan også bruge brugerdefinerede funktioner, lagrede procedurer og udløsere til at samle og dele programlogik, forretningsregler og politikker, komplekse forespørgsler, datavalidering og referentiel integritet kode på serveren i stedet for på den klient.

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

Uden at åbne en formular postsæt baseret på en stor tabel og deaktiverer postnavigation.

Til sidst skal du teste hver forespørgsel for at sikre optimal ydeevne.

Du kan finde flere oplysninger, se Database Engine justering af Advisor, Brug Performance Analyzer til at optimere en Access-databaseog Optimering af Microsoft Office Access programmer sammenkædede til SQL Server.

Se også

Azure-Database-Overførselsvejledningen

Microsoft Data overførsel Blog

Microsoft adgang til overførsel af SQL Server, konvertering og Databasekonvertering

Måder at dele en Access-skrivebordsdatabase på

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.

×