Een Access-database migreren naar SQL Server

Een Access-database migreren naar SQL Server

We hebben allemaal beperkingen en een Access-database is geen uitzondering. Een Access-database heeft bijvoorbeeld een maximale bestandsgrootte van 2 GB en kan maximaal 255 gelijktijdige gebruikers niet ondersteunen. Wanneer het tijd is voor de Access-database naar een hoger niveau gaat, kunt u migreren naar SQL Server. SQL Server (of on-premises of in de Azure-Cloud) ondersteunt grotere hoeveelheden gegevens, meer gelijktijdige gebruikers en heeft een hogere capaciteit dan de JET/ACE-database-engine. Deze handleiding biedt u een soepele start voor uw SQL Server-rit, helpt bij het handhaven van voor de front-end oplossingen die u hebt gemaakt en wees u ervan op de slag met Access voor toekomstige databaseoplossingen. De wizard Upsize is verwijderd uit Access in Access 2013, dus u kunt nu de Microsoft SQL Server Migration Assistant (SSMA) gebruiken. Volg deze stappen als u wilt migreren.

De stadia van databasemigratie naar SQL Server

Voordat u begint

De volgende secties bevatten achtergrondinformatie en andere informatie waarmee u aan de slag kunt.

Gesplitste databases

U kunt alle Access-databaseobjecten in één databasebestand gebruiken of ze kunnen worden opgeslagen in twee databasebestanden: een front-enddatabase en een back-enddatabase. Dit heet het splitsen van de database en is bedoeld om delen in een netwerkomgeving te bevorderen. Het back-enddatabase mag alleen tabellen en relaties bevatten. Het front-enddatabase mag alleen alle andere objecten bevatten, zoals formulieren, rapporten, query's, macro's, VBA-modules en gekoppelde tabellen in de back-enddatabase. Wanneer u een Access-database migreert, lijkt deze op een gesplitste database waarin SQL Server fungeert als een nieuwe back-end voor de gegevens die zich nu op een server bevinden.

Daardoor kunt u nog steeds de front-enddatabase met gekoppelde tabellen in de SQL Server-tabellen onderhouden. U kunt de voordelen van het snel ontwikkelen van toepassingen die een Access-database bieden, samen met de schaalbaarheid van SQL Server, uitstellen.

Voordelen van SQL Server

Nog steeds wat overtuigend voor migratie naar SQL Server? Hier volgen enkele aanvullende voordelen:

  • Meer gelijktijdige gebruikers    SQL Server kan veel meer gelijktijdige gebruikers verwerken dan toegang krijgen tot de hoeveelheid geheugen en minimaliseert de geheugenvereisten wanneer meer gebruikers worden toegevoegd.

  • Betere beschikbaarheid    Met SQL Server kunt u op een dynamische manier een back-up maken van een database of een volledige database die in gebruik is. U hoeft gebruikers dus niet te dwingen de database te verlaten om een back-up te maken van uw gegevens.

  • Hoge prestaties en schaalbaarheid    De SQL Server-database vervalt meestal beter dan een Access-database, met name met een grote database van terabyte formaat. Daarnaast kunnen SQL Server query's veel sneller en efficiënt verwerken door query's parallel te verwerken, met behulp van meerdere systeemeigen threads in één proces voor het verwerken van gebruikersaanvragen.

  • Verbeterde beveiliging    Als u een vertrouwde verbinding gebruikt, wordt SQL Server geïntegreerd met de beveiliging van Windows om één geïntegreerde toegang tot het netwerk en de database te bieden, waarbij de beste van beide beveiligingssystemen wordt gebruikt. Dit maakt het veel eenvoudiger om complexe beveiligingsschema's te beheren. SQL Server is de ideale opslag voor gevoelige informatie, zoals sofi-nummers, creditcardgegevens en adressen die vertrouwelijk zijn.

  • Onmiddellijke herstelmogelijkheden    Als het besturingssysteem vastloopt of de stroom uitvalt, kan SQL Server de database automatisch herstellen naar consistente status en zonder dat de beheerder van de beheerder een beheerder heeft.

  • Gebruik van VPN    Access en VPN (Virtual Private Network) kunnen niet samen. Met SQL Server kan externe gebruikers nog steeds de front-enddatabase van Access gebruiken op een bureaublad en de SQL serverback-end achter de VPN Firewall.

  • Azure SQL Server    Naast de voordelen van SQL Server biedt de mogelijkheid voor dynamische schaling zonder downtime, slim optimaliseren, globaal schalen en beschikbaarheid, eliminatie van hardwarekosten en beperkt beheer.

De beste Azure SQL Server-optie kiezen

Als u migreert naar Azure SQL Server, zijn er drie opties waaruit u kunt kiezen, elk met verschillende voordelen:

  • Eén database/elastische groepen    Deze optie heeft een eigen set bronnen die wordt beheerd via een SQL database-server. Eén database is vergelijkbaar met een database in SQL Server. U kunt ook een elastische pool toevoegen, een verzameling databases met een gedeelde set bronnen die worden beheerd via de SQL database-server. De meest gebruikte SQL Server-functies zijn beschikbaar bij ingebouwde back-ups, patches en herstel. Er is echter geen gegarandeerde precieze tijd en migratie van SQL Server mogelijk moeilijk.

  • Beheerd exemplaar    Deze optie is een verzameling systeem-en gebruikersdatabases met een gedeelde set bronnen. Een beheerd exemplaar is een exemplaar van de SQL Server-database die zeer compatibel is met SQL Server on-premises. Een beheerd exemplaar bevat ingebouwde back-ups, patches, herstel, en is gemakkelijk te migreren vanaf SQL Server. Er is echter een klein aantal SQL Server-functies die niet beschikbaar zijn en geen gegarandeerd precieze onderhoudstijd.

  • Azure Virtual Machine    Met deze optie kunt u SQL Server uitvoeren binnen een virtuele machine in de Azure-Cloud. U volledige controle hebt over de SQL Server-engine en een eenvoudig migratie traject. U moet uw back-ups, patches en herstel beheren.

Zie voor meer informatie het pad voor database-migratie kiezen bij Azure en Kies de juiste SQL Server-optie in azure.

Eerste stappen

Er zijn een paar problemen waarop u kunt voorkomen dat het migratieproces kan worden gestroomlijnd voordat u SSMA uitvoert:

  • Tabelindexen en primaire sleutels toevoegen    Zorg ervoor dat elke Access-tabel een index en een primaire sleutel heeft. Voor SQL Server moeten alle tabellen minimaal één index bevatten en moet een gekoppelde tabel een primaire sleutel hebben als de tabel kan worden bijgewerkt.

  • Relaties tussen primaire en refererende sleutels controleren    Zorg ervoor dat deze relaties gebaseerd zijn op velden met consistente gegevenstypen en tekengrootten. SQL Server biedt geen ondersteuning voor gekoppelde kolommen met verschillende gegevenstypen en tekengrootten bij beperkingen van refererende sleutels.

  • De bijlagekolom verwijderen    Met SSMA worden geen tabellen gemigreerd die de bijlagekolom bevatten.

Voordat u SSMA uitvoert, moet u de volgende stappen uitvoeren.

  1. Sluit de Access-database.

  2. Zorg ervoor dat huidige gebruikers die zijn verbonden met de database ook de database sluiten.

  3. Als de database de bestandsindeling. mdbbevat, verwijdert u beveiliging op gebruikersniveau.

  4. Een back-up maken van uw database. Zie uw gegevens beschermen met back-ups die u kunt terugzettenvoor meer informatie.

Tip    Overweeg om de Microsoft SQL Server Express-editie op uw bureaublad te installeren, die ondersteuning biedt voor 10 GB en die een gratis en eenvoudiger manier is om de migratie uit te voeren. Wanneer u verbinding maakt, gebruikt u LocalDB als database-exemplaar.

Tip    Gebruik indien mogelijk een zelfstandige versie van Access om een zelfstandige versie van Access te gebruiken. Als u alleen Office 365 kunt gebruiken, kunt u uw Access-database met behulp van de Access 2010-database-engine migreren met behulp van SSMA. Zie Microsoft Access Database Engine 2010 Redistributablevoor meer informatie.

SSMA uitvoeren

Microsoft biedt Microsoft SQL Server Migration Assistant (SSMA) om de migratie eenvoudiger te maken. SSMA migreert voornamelijk tabellen en selecteert query's zonder parameters. Formulieren, rapporten, macro's en VBA-modules worden niet geconverteerd. In de metagegevens Verkenner van SQL Server worden de Access-databaseobjecten en SQL Server-objecten weergegeven waarmee u de huidige inhoud van beide databases kunt controleren. De twee verbindingen die worden opgeslagen in het migratiebestand, kunt u in de toekomst besluiten om aanvullende objecten te overzetten.

Opmerking    Het migratieproces kan enige tijd duren, afhankelijk van de grootte van de databaseobjecten en de hoeveelheid gegevens die moet worden overgebracht.

  1. Als u een database wilt migreren met SSMA, moet u eerst de software downloaden en installeren door te dubbelklikken op het gedownloade MSI-bestand. Zorg ervoor dat u de juiste 32-of 64-bits versie installeert voor uw computer.

  2. Nadat u SSMA hebt geïnstalleerd, opent u het bestand op uw bureaublad, bij voorkeur van de computer met het Access-databasebestand.

    U kunt de database ook openen op een computer die toegang heeft tot de Access-database vanaf het netwerk in een gedeelde map.

  3. Volg de instructies in SSMA om basisinformatie te geven, zoals de locatie van de SQL-Server, de Access-database en-objecten die u wilt migreren, verbindingsgegevens en of u gekoppelde tabellen wilt maken.

  4. Als u migreert naar SQL Server 2016 of hoger en een gekoppelde tabel wilt bijwerken, voegt u een kolom rowversion uit door hulpmiddelen voor redigeren > project instellingen > Algemeente selecteren.

    Het veld rowversion helpt record conflicten te voorkomen. In Access wordt dit rowversion veld in een gekoppelde SQL Server-tabel gebruikt om te bepalen wanneer de record voor het laatst is bijgewerkt. Wanneer u het veld rowversion toevoegt aan een query, wordt dit ook gebruikt om de rij na een bijwerkbewerking opnieuw te selecteren. Dit helpt de efficiëntie te voorkomen bij het oplossen van problemen met conflictberichten en het verwijderen van gebeurtenissen die kunnen optreden wanneer Access verschillende resultaten van de oorspronkelijke verzending opspoort, bijvoorbeeld met gegevenstypen met drijvende punten en triggers die wijzigen kolommen. Vermijd het gebruik van het veld rowversion echter niet in formulieren, rapporten of VBA-code. Zie rowversion voor meer informatie.

    Opmerking    Vermijd verwarring met rowversion met tijdstempels. Hoewel de tijdstempel van het trefwoord een synoniem is voor rowversion in SQL Server, kunt u rowversion niet gebruiken om een tijdstempel van een gegevensinvoer te laten onderwijzen.

  5. Als u nauwkeurige gegevenstypen wilt instellen, selecteert u controlemiddelen > project instellingen > type toewijzingen. Als u bijvoorbeeld alleen Engelse tekst opslaat, kunt u het gegevenstype varchar gebruiken in plaats van nvarchar .

Objecten converteren

U kunt in SSMA Access-objecten converteren naar SQL Server-objecten, maar u kunt de objecten niet meteen kopiëren. SSMA biedt een lijst met de volgende objecten die u wilt migreren, zodat u kunt bepalen of u deze wilt verplaatsen naar de SQL Server-database:

  • Tabellen en kolommen

  • Selecteer Query's zonder parameters.

  • Primaire en refererende sleutels

  • Indexen en standaardwaarden

  • Beperkingen controleren (kolomeigenschap met lengte nul toestaan, kolomvalidatieregel, tabel validatie)

Voor de beste gewoonte kunt u het SSMA-beoordelingsrapport gebruiken, waarin de conversieresultaten worden weergegeven, zoals fouten, waarschuwingen, informatieve berichten, tijds ramingen voor het uitvoeren van de migratie, en afzonderlijke correctie stappen voor de correctie voordat u de code verplaatst. objecten.

Door databaseobjecten te converteren, worden de objectdefinities van de Access-metagegevens geconverteerd naar een vergelijkbare Transact-SQL-syntaxis (T-SQL)en wordt deze informatie vervolgens geladen in het project. Vervolgens kunt u de SQL Server-of SQL Azure-objecten en hun eigenschappen weergeven met behulp van SQL Server of SQL Azure metagegevens Verkenner.

Volg deze handleidingom objecten te converteren, te laden en te migreren naar SQL Server.

Tip    Wanneer u de Access-database hebt gemigreerd, slaat u het projectbestand op voor later gebruik, zodat u de gegevens opnieuw kunt migreren voor testen of de definitieve migratie.

Tabellen koppelen

Overweeg om de meest recente versie van de SQL Server OLE DB en ODBC-Stuurprogramma's te installeren in plaats van de oorspronkelijke SQL Server-Stuurprogramma's die bij Windows worden geleverd te gebruiken. De nieuwere Stuurprogramma's zijn niet alleen sneller, maar wel ondersteuning voor nieuwe functies in Azure SQL die niet beschikbaar zijn in de vorige Stuurprogramma's. U kunt de Stuurprogramma's installeren op elke computer waarop de geconverteerde database wordt gebruikt. Zie Microsoft OLE DB driver 18 for SQL Server en Microsoft ODBC driver 17 voor SQL Servervoor meer informatie.

Nadat u de Access-tabellen hebt gemigreerd, kunt u een koppeling maken naar de tabellen in SQL Server die nu uw gegevens host. Als u rechtstreeks vanuit Access koppelt, biedt u ook een eenvoudigerere manier om uw gegevens weer te geven in plaats van de complexere SQL Server-beheerprogramma's te gebruiken.  U kunt gekoppelde gegevens opvragen en bewerken, afhankelijk van de machtigingen die zijn ingesteld door uw SQL Server-databasebeheerder.

Opmerking    Als u een ODBC-DSN maakt wanneer u een koppeling naar uw SQL Server-database maakt tijdens het koppel proces, maakt u dezelfde DSN op alle computers die de nieuwe toepassing gebruiken of gebruikt u de verbindingsreeks die in het DSN-bestand is opgeslagen.

Zie gegevens koppelen of importeren vanuit een Azure SQL Server-database en gegevens importeren uit of een koppeling maken naar gegevens in een SQL Server-database voor meer informatie.

Tip   Vergeet niet om het Koppelingsbeheer van gekoppelde tabellen te gebruiken in Access om tabellen eenvoudig te vernieuwen en opnieuw te koppelen. Zie gekoppelde tabellen beherenvoor meer informatie.

Testen en reviseren

In de volgende secties worden veelvoorkomende problemen beschreven die u kunt voordoen tijdens de migratie en hoe u deze kunt verwerken.

Query's

Alleen Selectiequery's worden geconverteerd. andere query's zijn niet, waaronder Selectiequery's die parameters uitvoeren. Het is mogelijk dat sommige query's niet volledig worden geconverteerd en SSMA rapporten van de queryfouten maakt tijdens het conversieproces. U kunt handmatig objecten bewerken die niet worden geconverteerd met de syntaxis van T-SQL. Syntaxisfouten kunnen ook handmatig het automatisch converteren van Access-specifieke functies en gegevenstypen naar SQL Server-accounts. Zie voor meer informatie Access SQL vergelijken met SQL Server TSQL.

Gegevenstypen

Access en de SQL-Server hebben soortgelijke gegevenstypen, maar houd rekening met de volgende potentiële problemen.

Groot getal    In het gegevenstype groot getal wordt een niet-monetair, numerieke waarde opgeslagen en compatibel met het gegevenstype SQL bigint. U kunt dit gegevenstype gebruiken om grote hoeveelheden efficiënt te berekenen, maar wel de bestandsindeling voor de ACCDB-bestandsindeling (16.0.7812 of hoger) van de bestandsindeling ACCDB te gebruiken en beter te werken met de 64-bits versie van Access. Zie voor meer informatie het gegevenstype groot getal gebruiken en kies tussen de 64-bits of 32-bits versie van Office.

Ja/Nee    Standaard wordt een Access-kolom met Ja/Nee geconverteerd naar een SQL Server-bits veld. Als u recordvergrendeling wilt voorkomen, Zorg ervoor dat het bit-veld is ingesteld op NULL-waarden weigeren. IN SSMA kunt u de bits kolom selecteren, zodat de eigenschap Null-waarden toestaan niet is ingeschakeld. In TSQL gebruikt u de instructies tabel maken of tabel wijzigen .

Datum en tijd    U hebt verschillende datum-en tijd overwegingen:

  • Als het compatibiliteitsniveau van de database 130 (SQL Server 2016) of hoger is en een gekoppelde tabel een of meer datum-of DATETIME2 kolommen bevat, kan de tabel de waarde van het bericht #deleted in de resultaten. Zie voor meer informatie Access-gekoppelde tabel naar SQL-Server-database #deleted als resultaat.

  • Gebruik het gegevenstype DATETIME2 dat een groter datumbereik is dan DateTime.

  • Wanneer u een query uitvoert voor datums in SQL Server, moet u rekening houden met zowel de tijd als de datum. Bijvoorbeeld:

    • DateOrdered tussen 1/1/19 en 1/31/19 mag niet alle orders bevatten.

    • DateOrdered tussen 1/1/19 00:00:00 AM en 1/31/19 11:59:59 PM omvat alle bestellingen.

Bijlage   Het gegevenstype bijlage bevat een bestand in Access-database. In SQL Server hebt u verschillende opties waarmee u rekening moet houden. U kunt de bestanden in de Access-database extraheren en vervolgens koppelingen naar de bestanden in uw SQL Server-database opslaan. U kunt ook FILESTREAM, FileTables of Remote BLOB (RESOURCESTRUCTUUR) gebruiken om bijlagen te bewaren die zijn opgeslagen in de SQL Server-database.

Hyperlink    Access-tabellen hebben kolommen met hyperlinks die niet worden ondersteund door SQL Server. Standaard worden deze kolommen geconverteerd naar nvarchar (max) kolommen in SQL Server, maar u kunt de toewijzing aanpassen om een kleiner gegevenstype te kiezen. In uw Access-oplossing kunt u nog steeds het gedrag van hyperlinks in formulieren en rapporten gebruiken als u de eigenschap hyperlink voor het besturingselement instelt op waar.

Veld met meerdere waarden    Het veld met meerdere waarden in Access wordt omgezet in SQL Server als een ntext-veld dat de lijst met waarden met scheidingstekens bevat. SQL Server biedt geen ondersteuning voor gegevenstypen met meerdere waarden die een veel-op-veel-relatie vormen. Mogelijk is er aanvullend ontwerp en conversie vereist.

Zie voor meer informatie over het toewijzen van toegang tot en SQL Server-gegevenstypen gegevenstypen vergelijken.

Opmerking    Velden met meerdere waarden worden niet geconverteerd en werden stopgezet in Access 2010.

Zie datum-en tijd typen, tekenreeks en binaire typen, en numerieke typenvoor meer informatie.

Visual Basic

Hoewel VBA niet wordt ondersteund door SQL Server, moet u rekening houden met de volgende mogelijke oorzaken:

VBA-functies in Query's    Access-query's ondersteunen VBA-functies voor gegevens in een querykolom. U kunt geen toegang krijgen tot query's die VBA-functies gebruiken, zodat alle gevraagde gegevens worden doorgegeven aan Microsoft Access voor verwerking. In de meeste gevallen moeten deze query's worden geconverteerd naar Pass Through-query's.

Door gebruiker gedefinieerde functies in Query's    Microsoft Access-query's ondersteunen het gebruik van functies die zijn gedefinieerd in VBA-modules voor het verwerken van gegevens die aan hen zijn doorgegeven. Query's kunnen zelfstandige query's zijn, SQL-instructies in recordbronnen voor formulieren en rapporten, gegevensbronnen van keuzelijsten met invoervakken en keuzelijsten in formulieren, rapporten en tabelvelden, en standaard-of validatieregel expressies. Deze door de gebruiker gedefinieerde functies kunnen niet worden uitgevoerd in SQL Server. Het kan zijn dat u deze functies handmatig opnieuw moet ontwikkelen en ze moet converteren naar opgeslagen procedures op SQL Server.

Prestaties optimaliseren

De belangrijkste manier om de prestaties te optimaliseren met uw nieuwe, back-end SQL Server is te bepalen wanneer u lokale of externe query's moet gebruiken. Wanneer u uw gegevens naar SQL Server migreert, moet u ook overstappen van een bestands server naar een databasemodel client-server. Volg deze algemene richtlijnen:

  • Kleine, alleen-lezen query's uitvoeren op de client voor snelle toegang.

  • Voer lange, lees-en schrijf query's op de server uit om te profiteren van de betere verwerkingskracht.

  • Minimaliseer netwerkverkeer met filters en aggregatie om alleen de gegevens over te brengen die u nodig hebt.

Prestaties optimaliseren in het databasemodel voor client servers

Zie een Pass Through-query makenvoor meer informatie.

Hierna volgt een extra, aanbevolen richtlijnen.

Logica op de server plaatsen    Uw toepassing kan ook weergaven, door de gebruiker gedefinieerde functies, opgeslagen procedures, berekende velden en triggers gebruiken voor het centraliseren en delen van toepassingslogica, bedrijfsregels en beleid, complexe query's, gegevensvalidatie en referentiële integriteits code op de server in plaats van op de client. Vraagt u of u deze query of taak sneller en sneller kunt uitvoeren op de server? Test ten slotte elke query om optimale prestaties te garanderen.

Weergaven gebruiken in formulieren en rapporten    In Access doet u het volgende:

  • Voor formulieren gebruikt u een SQL-weergave voor een alleen-lezen formulier en een geindexeerde SQL-weergave voor een lees-en schrijf formulier als recordbron.

  • Voor rapporten gebruikt u een SQL-weergave als de recordbron. U kunt echter wel een afzonderlijke weergave maken voor elk rapport, zodat u een specifiek rapport eenvoudiger kunt bijwerken zonder dat dit gevolgen heeft voor andere rapporten.

Het laden van gegevens in een formulier of rapport minimaliseren    U kunt geen gegevens weergeven totdat de gebruiker erom vraagt. Als u bijvoorbeeld de eigenschap record record leeg wilt laten, selecteert u een filter in uw formulier en vult u vervolgens de eigenschap Recordbron met het filter. Of gebruik de WHERE-component van DoCmd. FormulierOpenen en DoCmd. RapportOpenen om de exact benodigde record (s) voor de gebruiker weer te geven. Overweeg om recordnavigatie uit te schakelen.

Let op met heterogene query's   Voer een query uit waarbij een lokale Access-tabel en een gekoppelde SQL Server-tabel worden gecombineerd, ook wel een hybride query genoemd. Voor dit type query moet het downloaden van alle SQL Server-gegevens naar de lokale computer en de query vervolgens worden uitgevoerd, wordt de query niet uitgevoerd in SQL Server.

Wanneer gebruikt u lokale tabellen?    Overweeg om lokale tabellen te gebruiken voor gegevens die zelden veranderen, zoals de lijst met provincies of provincies in een land of regio. Statische tabellen worden vaak gebruikt om te filteren en kunnen de front-end van Access beter worden uitgevoerd.

Zie voor meer informatie het artikel over het maken van een Access-database met behulp van Performance Analyzer, een Access-database optimaliseren en deMicrosoft Office Access-toepassingen die zijn gekoppeld aan SQL Server, optimaliseren.

Zie ook

Azure database migratie handleiding

Bloghttps://blogs.msdn.microsoft.com/datamigration/Microsoft Data Migration

Microsoft Access to SQL Server Migration, conversie en upsizebewerking

Manieren om een Access-bureaubladdatabase te delen

Opmerking:  Deze pagina is automatisch vertaald en kan grammaticale fouten of onnauwkeurigheden bevatten. Wij hopen dat deze inhoud nuttig voor je is. Wil je ons laten weten of deze informatie nuttig is? Hier is het Engelstalige artikel ter referentie.

Uw Office-vaardigheden uitbreiden
Training verkennen
Als eerste nieuwe functies krijgen
Deelnemen aan Office Insiders

Was deze informatie nuttig?

Bedankt voor uw feedback.

Hartelijk dank voor uw feedback! Het lijkt ons een goed idee om u in contact te brengen met een van onze Office-ondersteuningsagenten.

×