Overføre en Access-database til SQL Server

Vi har alle begrensninger, og en Access-database er ingen unntak. En Access-database har for eksempel en størrelses grense på 2 GB og kan ikke støtte mer enn 255 samtidige brukere. Så når det er tid for Access-databasen å gå til det neste nivået, kan du overføre til SQL Server. SQL Server (om lokalt eller i Azure Cloud) støtter store mengder data, flere samtidige brukere og har større kapasitet enn JET/ACE Database Engine. Denne veiledningen gir deg en jevn start på SQL Server-turen, hjelper deg med å beholde de avanserte løsningene du har opprettet, og for motiverer deg til å bruke Access til fremtidige database løsninger. Oppskaleringsveiviseren ble fjernet fra Access i Access 2013, så nå kan du bruke Microsoft SQL Server Migration Assistant (SSMA). Følg disse trinnene for å overføre.

Trinnene for database overføring til SQL Server

Før du begynner

Følgende deler inneholder bakgrunn og annen informasjon som hjelper deg med å komme i gang.

Om del databaser

Alle Access-databaseobjekter kan enten være i én database fil, eller de kan lagres i to database filer: en front database og en bak database. Dette kalles å dele databasen og er utformet for å gjøre det enklere å dele i et nettverks miljø. Back-end database-filen må bare inneholde tabeller og relasjoner. Front filen må bare inneholde alle andre objekter, inkludert skjemaer, rapporter, spørringer, makroer, VBA-moduler og koblede tabeller til bak databasen. Når du overfører en Access-database, er den lik en del database i denne SQL-serveren som fungerer som et nytt back-end for dataene som nå er plassert på en server.

Resultatet er at du fortsatt kan opprettholde front Access-databasen med koblede tabeller til SQL Server-tabellene. Du kan effektivt utlede fordelene ved rask program utvikling som en Access-database gir, sammen med skalerbar heten for SQL Server.

SQL Server-fordeler

Trenger du fortsatt å overføre til SQL Server? Her er noen flere fordeler å tenke på:

  • Flere samtidige brukere    SQL Server kan håndtere mange flere samtidige brukere enn tilgang og redusere minne kravene når flere brukere er lagt til.

  • Økt tilgjengelighet    Med SQL Server kan du dynamisk sikkerhetskopiere, enten trinnvis eller fullført, databasen mens den er i bruk. Dermed trenger du ikke å tvinge brukere til å avslutte databasen for å ta sikkerhetskopi av data.

  • Høy ytelse og skalerbar het    SQL Server-databasen utfører vanligvis bedre enn en Access-database, spesielt med en stor, terabyte-størrelses database. Dessuten behandler SQL Server spørringer mye raskere og effektivt ved å behandle spørringer parallelt med flere opprinnelige tråder i én enkelt prosess for å håndtere bruker forespørsler.

  • Forbedret sikkerhet    Ved hjelp av en klarert tilkobling integreres SQL Server med system sikkerhet i Windows for å gi en enkelt integrert tilgang til nettverket og databasen, som bruker det beste av begge sikkerhets systemene. Dette gjør det mye enklere å administrere komplekse sikkerhets skjemaer. SQL Server er den ideelle lagrings plassen for sensitive opplysninger, for eksempel person numre, kreditt kort data og adresser som er konfidensielle.

  • Umiddelbar gjenoppretting    Hvis operativ systemet krasjer eller strømmen går ut, kan SQL Server automatisk gjenopprette databasen til en konsekvent tilstand på noen få minutter og uten at database administratoren har noe å gjøre.

  • Bruk av VPN    Tilgang og virtuelle private nettverk (VPN) kommer ikke sammen. Med SQL Server kan eksterne brukere likevel bruke Access front database på et skrive bord og SQL Server back-end bak VPN-brannmuren.

  • Azure SQL Server    I tillegg til fordelene med SQL Server, tilbyr dynamisk skalerbar het uten nedetid, intelligent optimering, global skalerbar het og tilgjengelighet, eliminering av maskin vare kostnader og redusert administrasjon.

Velg det beste alternativet for Azure SQL Server

Hvis du overfører til Azure SQL Server, er det tre alternativer du kan velge blant, hver med ulike fordeler:

  • Enkelt database-og Elastic-utvalg    Dette alternativet har et eget sett med ressurser som administreres via en SQL-databaseserver. En enkelt database er som en oppbevart database i SQL Server. Du kan også legge til et Elastic-utvalg, som er en samling av databaser med et delt sett med ressurser administrert via SQL-databaseserveren. De mest brukte SQL Server-funksjonene er tilgjengelige med innebygde sikkerhets kopier, oppdateringer og gjenoppretting. Men det er ikke garantert nøyaktig vedlikeholds tid, og overføring fra SQL Server kan være vanskelig.

  • Forvaltet forekomst    Dette alternativet er en samling av system-og bruker databaser med et delt sett med ressurser. En forvaltet forekomst er som en forekomst av SQL Server-databasen som er svært kompatibel med SQL Server lokalt. En forvaltet forekomst har innebygde sikkerhets kopier, oppdateringer, gjenoppretting og er enkelt å overføre fra SQL Server. Det finnes imidlertid et lite antall SQL Server-funksjoner som ikke er tilgjengelige, og ingen garantert nøyaktig vedlikeholds tid.

  • Azure Virtuell datamaskin    Med dette alternativet kan du kjøre SQL Server i en virtuell maskin i Azure Cloud. Du har full kontroll over SQL Server Engine og en enkel overførings bane. Men du må administrere sikkerhets kopiering, oppdateringer og gjenoppretting.

Hvis du vil ha mer informasjon, kan du se velge bane for database overføring til Azure og velge riktig SQL Server-alternativ i Azure.

Første trinn

Det finnes et par problemer du kan adressere foran, som kan hjelpe deg med å effektivisere overførings prosessen før du kjører SSMA:

  • Legge til tabell indekser og primær nøkler    Kontroller at hver Access-tabell har en indeks og en primær nøkkel. SQL Server krever at alle tabeller har minst én indeks og krever at en koblet tabell har en primær nøkkel hvis tabellen kan oppdateres.

  • Kontroller primær-/sekundær nøkkel relasjoner    Kontroller at disse relasjonene er basert på felt med konsekvente data typer og-størrelser. SQL Server støtter ikke sammenkoblede kolonner med ulike data typer og størrelser i sekundær nøkkel begrensninger.

  • Fjerne vedlegg-kolonnen    SSMA overfører ikke tabeller som inneholder vedlegg-kolonnen.

Før du kjører SSMA, må du følge Fremgangs måten nedenfor.

  1. Lukk Access-databasen.

  2. Kontroller at gjeldende brukere som er koblet til databasen, også lukker databasen.

  3. Hvis databasen er i MDB-filformatet, fjerner du sikkerhet på bruker nivå.

  4. Sikkerhets Kopier databasen. Hvis du vil ha mer informasjon, kan du se beskytte data med sikkerhets kopiering og gjenoppretting.

Tips    Vurder å installere Microsoft SQL Server Express Edition på skrive bordet som støtter opptil 10 GB, og som er en gratis og enklere måte å kjøre gjennom og kontrollere overføringen på. Når du kobler til, bruker du LocalDB som database forekomst.

Tips    Hvis det er mulig, kan du bruke en fritt stående versjon av Access. Hvis du bare kan bruke Office 365, bruker du database motoren Access 2010 til å overføre Access-databasen når du bruker SSMA. Hvis du vil ha mer informasjon, kan du se Microsoft Access-databasemotoren 2010 Redistributable.

Kjør SSMA

Microsoft tilbyr Microsoft SQL Server Migration Assistant (SSMA) for å gjøre overføring enklere. SSMA overfører vanligvis tabeller og velger spørringer uten parametere. Skjemaer, rapporter, makroer og VBA-moduler konverteres ikke. SQL Server-Tabellmetadata viser Access-databaseobjektene og SQL Server-objektene, slik at du kan se gjennom gjeldende innhold i begge databasene. Disse to tilkoblingene lagres i overførings filen, slik at du bestemmer deg for å overføre flere objekter i fremtiden.

Obs!    Overførings prosessen kan ta litt tid avhengig av størrelsen på database objektene og data mengden som må overføres.

  1. Hvis du vil overføre en database ved hjelp av SSMA, må du først laste ned og installere program varen ved å dobbeltklikke den nedlastede MSI-filen. Pass på at du installerer den riktige 32-eller 64-biters versjonen for data maskinen.

  2. Når du har installert SSMA, åpner du den på skrive bordet, fortrinnsvis fra data maskinen med Access-databasefilen.

    Du kan også åpne den på en maskin som har tilgang til Access-databasen fra nettverket i en delt mappe.

  3. Følg instruksjonene i SSMA for å gi grunnleggende informasjon, for eksempel SQL Server-plasseringen, Access-databasen og-objektene som skal overføres, tilkoblings informasjon og om du vil opprette koblede tabeller.

  4. Hvis du overfører til SQL Server 2016 eller nyere og vil oppdatere en koblet tabell, kan du legge til en ROWVERSION-kolonne ved å velge se gjennom verktøy > prosjekt innstillinger > Generelt.

    ROWVERSION-feltet bidrar til å unngå post konflikter. Access bruker dette ROWVERSION-feltet i en SQL Server-koblet tabell til å bestemme når posten sist ble oppdatert. Hvis du legger til ROWVERSION-feltet i en spørring, bruker Access det til å velge raden på nytt etter en oppdaterings operasjon. Dette forbedrer effektiviteten ved å bidra til å unngå skrive konflikt feil og registrere slettings scenarioer som kan skje når Access oppdager forskjellige resultater fra den opprinnelige innsendingen, for eksempel kan oppstå med data typer av typen flyt punkt tall og utløsere som endrer kolonner. Unngå imidlertid å bruke ROWVERSION-feltet i skjemaer, rapporter eller VBA-kode. Hvis du vil ha mer informasjon, kan du se ROWVERSION.

    Obs!    Unngå forvirrende ROWVERSION med tids stempler. Selv om tids stempelet for nøkkel ord er et synonym for ROWVERSION i SQL Server, kan du ikke bruke ROWVERSION som en tids angivelse for en data registrering.

  5. Hvis du vil angi nøyaktige data typer, velger du se gjennom verktøy > prosjekt innstillinger > type tilordning. Hvis du for eksempel bare lagrer engelsk tekst, kan du bruke data typen varchar i stedet for nvarchar .

Konvertere objekter

SSMA konverterer Access-objekter til SQL Server-objekter, men de kopierer ikke objektene med én gang. SSMA inneholder en liste over følgende objekter som skal overføres, slik at du kan bestemme om du vil flytte dem til SQL Server-databasen:

  • Tabeller og kolonner

  • Velg spørringer uten parametere.

  • Primær-og sekundær nøkler

  • Indekser og standard verdier

  • Kontroll begrensninger (Tillat Kol onne egenskap med null lengde, Kol onne Valide Rings regel, tabell Valide ring)

Som beste praksis bruker du SSMA-vurderings rapporten, som viser konverterings resultatene, inkludert feil, advarsler, informasjons meldinger, tids beregninger for å utføre overføringen, og individuelle feil korrigerings trinn du må utføre før du faktisk flytter skriverobjekter.

Konvertering av database objekter henter objekt definisjonene fra Access-metadata, konverterer dem til tilsvarende Transact-SQL-syntaks (T-SQL), og laster deretter inn denne informasjonen i prosjektet. Du kan deretter vise SQL Server-eller SQL Azure-objekter og deres egenskaper ved hjelp av SQL Server eller SQL Azure metadata Explorer.

Hvis du vil konvertere, laste inn og overføre objekter til SQL Server, følger du denne veiledningen.

Tips    Når du har overført en Access-database, lagrer du prosjekt filen for senere bruk, slik at du kan overføre dataene på nytt for å teste eller utføre en endelig overføring.

Koble tabeller

Vurder å installere den nyeste versjonen av OLE DB-og ODBC-driverne for SQL Server i stedet for å bruke de opprinnelige SQL Server-driverne som leveres med Windows. Ikke bare de nyere driverne raskere, men de støtter nye funksjoner i Azure SQL som de forrige driverne ikke har. Du kan installere driverne på hver data maskin der den konverterte databasen brukes. Hvis du vil ha mer informasjon, kan du se Microsoft OLE DB driver 18 for SQL Server og Microsoft ODBC-driver 17 for SQL Server.

Når du har overført Access-tabellene, kan du koble til tabellene i SQL Server, som nå er vert for dataene. Kobling direkte fra Access gir deg også en enklere måte å vise dataene på i stedet for å bruke de mer kompliserte administrasjons verktøyene for SQL Server.  Du kan spørre etter og redigere koblede data, avhengig av tillatelsene som er satt opp av SQL Server-databasemotoren.

Obs!    Hvis du oppretter en ODBC-DSN når du kobler til SQL Server-databasen under koblings prosessen, kan du enten opprette samme DSN på alle maskiner som bruker det nye programmet, eller programmatisk bruke tilkoblings strengen som er lagret i DSN-filen.

Hvis du vil ha mer informasjon, kan du se Koble til eller importere data fra en Azure SQL Server-database og importere eller koble til data i en SQL Server-database.

Tips   Ikke glem å bruke tabell koblings behandling i Access til å oppdatere og koble til tabeller på en enkel måte. Hvis du vil ha mer informasjon, kan du se behandle koblede tabeller.

Teste og endre

Avsnittene nedenfor beskriver vanlige problemer som du kan støte på under overføring og hvordan du behandler dem.

Spørringer

Bare utvalgs spørringer konverteres. andre spørringer er ikke, inkludert utvalgs spørringer som tar parametere. Noen spørringer kan ikke konvertere helt og SSMA rapporter-feil i løpet av konverterings prosessen. Du kan manuelt redigere objekter som ikke konverteres ved hjelp av T-SQL-syntaks. Syn taks feil kan også kreve at du konverterer tilgangs spesifikke funksjoner og data typer til SQL Servers manuelt. Hvis du vil ha mer informasjon, kan du se sammenligne Access SQL med SQL Server TSQL.

Datatyper

Access og SQL Server har lignende data typer, men vær oppmerksom på følgende potensielle problemer.

Stort tall    Data typen stort tall lagrer en ikke-monetær, numerisk verdi og er kompatibel med data typen SQL-bigint. Du kan bruke denne data typen til å effektivt beregne store tall, men den krever bruk av formatet Access 16 (16.0.7812 eller nyere). accdb-database, og utfører bedre med 64-biters versjonen av Access. Hvis du vil ha mer informasjon, kan du se bruke data typen stort tall og velge mellom 64-biters eller 32-biters versjonen av Office.

Ja/nei    Som standard konverteres en Access Ja/nei-kolonne til et SQL Server-biters felt. Hvis du vil unngå post låsing, Kontroller at bit-feltet er satt til å ikke tillate NULL verdier. I SSMA kan du velge bit-kolonnen for å sette egenskapen Tillat null verdier til Nei. Bruk setningen Create Table eller alter Table i TSQL.

Dato og klokkeslett    Det finnes flere dato-og tids hensyn:

  • Hvis kompatibilitetsnivået i databasen er 130 (SQL Server 2016) eller høyere, og en koblet tabell inneholder én eller flere datetime-eller datetime2-kolonner, kan tabellen returnere meldingen #deleted i resultatene. Hvis du vil ha mer informasjon, kan du se tilgangs koblet tabell til SQL-Server-databasen returnerer #deleted.

  • Bruk data typen datetime2 som har et større dato intervall enn datetime.

  • Når du spør etter datoer i SQL Server, må du følge med på tiden i tillegg til datoen. Eksempel:

    • DateOrdered mellom 1/1/19 og 1/31/19 kan ikke inneholde alle bestillinger.

    • DateOrdered mellom 1/1/19 00:00:00 AM og 1/31/19 11:59:59 inkluderer alle bestillinger.

Vedlegg   Vedleggs data typen lagrer en fil i Access-databasen. I SQL Server har du flere alternativer å ta i betraktning. Du kan pakke ut filene fra Access-databasen og deretter vurdere å lagre koblinger til filene i SQL Server-databasen. Du kan også bruke FILESTREAM, FileTables eller eksternt BLOB-lager (RBS) til å beholde vedlegg som er lagret i SQL Server-databasen.

Hyperkobling    Access-tabeller har kolonner for hyperkoblinger som SQL Server ikke støtter. Disse Kol onnene konverteres som standard til nvarchar-kolonner (maks) i SQL Server, men du kan tilpasse tilordningen til å velge en mindre data type. I Access-løsningen kan du fremdeles bruke virke måten for hyperkobling i skjemaer og rapporter hvis du angir egenskapen Hyperlink for kontrollen til sann.

Fler verdi felt    Feltet for tilgang til flere verdier konverteres til SQL Server som et ntext-felt som inneholder det Delimited-settet med verdier. Ettersom SQL Server ikke støtter en datatype med flere verdier som gjenspeiler en mange-til-mange-relasjon, kan ytterligere utforming og konvertering være nødvendig.

Hvis du vil ha mer informasjon om tilordning av tilgang og SQL Server-datatyper, kan du se sammenligne data typer.

Obs!    Fler verdi felt konverteres ikke og ble fjernet i Access 2010.

Hvis du vil ha mer informasjon, kan du se dato-og klokkeslett typer, streng og binæretyper og numeriske typer.

Visual Basic

Selv om VBA ikke støttes av SQL Server, kan du merke av følgende mulige problemer:

VBA-funksjoner i spørringer    Access-spørringer støtter VBA-funksjoner på data i en spørring-kolonne. Men Access-spørringer som bruker VBA-funksjoner, kan ikke kjøres på SQL Server, så alle forespurte data sendes til Microsoft Access for behandling. I de fleste tilfeller bør disse spørringene konverteres til direkte spørringer.

Brukerdefinerte funksjoner i spørringer    Microsoft Access-spørringer støtter bruken av funksjoner som er definert i VBA-moduler for å behandle data som sendes til dem. Spørringer kan være fritt stående spørringer, SQL-setninger i skjema-/rapport post kilder, data kilder med kombinasjons bokser og lister i skjemaer, rapporter og tabell felt og standard-eller Valide Rings regel uttrykk. SQL Server kan ikke kjøre disse brukerdefinerte funksjonene. Det kan hende du må utforme disse funksjonene på nytt manuelt og konvertere dem til lagrede prosedyrer på SQL Server.

Optimalisere ytelse

Den viktigste måten å optimalisere ytelsen med den nye, bak SQL-serveren på, er å bestemme når du skal bruke lokale eller eksterne spørringer. Når du overfører dataene til SQL Server, flytter du også fra en filserver til en database modell med klient-server for data behandling. Følg disse generelle retnings linjene:

  • Kjør små, skrivebeskyttede spørringer på klienten for å få rask tilgang.

  • Kjør lange, lese/skrive-spørringer på serveren for å dra nytte av den økte behandlings strømmen.

  • Minimere nettverks trafikk med filtre og aggregasjon for å overføre bare dataene du trenger.

Optimalisere ytelsen i database modellen for klient-serveren

Hvis du vil ha mer informasjon, kan du se opprette en direkte spørring.

Nedenfor finner du ytterligere, anbefalte retnings linjer.

Plassere logikken på serveren    Programmet kan også bruke visninger, brukerdefinerte funksjoner, lagrede prosedyrer, beregnede felt og utløsere til å sentralisere og dele program logikk, forretnings regler og policyer, komplekse spørringer, data Valide ring og kode for referanseintegritet på server i stedet for på klienten. Spør deg selv, kan denne spørringen eller oppgaven utføres på serveren bedre og raskere? Til slutt tester du hver spørring for å sikre optimal ytelse.

Bruke visninger i skjemaer og rapporter    Gjør følgende i Access:

  • For skjemaer bruker du en SQL-visning for et skrivebeskyttet skjema, og en SQL-indeksert visning for et lese/skrive-skjema som post kilde.

  • Bruk en SQL-visning som post kilde for rapporter. Opprett imidlertid en egen visning for hver rapport, slik at du enkelt kan oppdatere en bestemt rapport uten å påvirke andre rapporter.

Minimere innlasting av data i et skjema eller en rapport    Ikke Vis data før brukeren ber om det. Du kan for eksempel la egenskapen post kilde være tom, gjøre brukere velge et filter i skjemaet og deretter fylle ut egenskapen post kilde med filteret. Du kan eventuelt bruke WHERE-setningsdelen i DoCmd. Åpne skjema og DoCmd. Åpne rapport til å vise den nøyaktige posten (ene) som kreves av brukeren. Vurder å slå av post navigering.

Vær forsiktig med heterogene spørringer   Unngå å kjøre en spørring som kombinerer en lokal Access-tabell og en SQL Server-koblet tabell, også kalt en hybrid spørring. Denne typen spørring krever fortsatt Access for å laste ned alle SQL Server-dataene til den lokale data maskinen, og deretter kjører spørringen, den kjører ikke spørringen i SQL Server.

Når du bør bruke lokale tabeller    Vurder å bruke lokale tabeller for data som sjelden endres, for eksempel listen over del stater eller provinser i et land eller område. Statiske tabeller brukes ofte til filtrering, og kan utføre bedre på Access-fronten.

Hvis du vil ha mer informasjon, kan du se database motor justerings rådgiver, bruke ytelses analysering til å optimalisere en Access-databaseog optimalisere Microsoft Office Access-programmer som er koblet til SQL Server.

Se også

Veiledning for overføring av Azure-Database

Blogghttps://blogs.msdn.microsoft.com/datamigration/for Microsoft data overføring

Microsoft Access til SQL Server-overføring, konvertering og

Måter å dele en Access-skrivebordsdatabase på

Obs!:  Denne siden er oversatt gjennom automatisering og kan inneholde grammatiske feil eller unøyaktigheter. Formålet vårt er at innholdet skal være nyttig for deg. Kan du fortelle oss om informasjonen var nyttig? Her er den engelske artikkelen for referanse.

Bli bedre på Office
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×