Een Access-database migreren naar SQL Server

Een Access-database migreren naar SQL Server

We hebben allemaal limieten en een Access-database is hierop geen uitzondering. Een Access-database heeft bijvoorbeeld een limiet van 2 GB en ondersteunt niet meer dan 255 gelijktijdige gebruikers. Dus wanneer het tijd is om uw Access-database naar een hoger niveau te tillen, kunt u migreren naar SQL Server. SQL Server (on-premises of in de Azure-cloud) ondersteunt grotere hoeveelheden gegevens, meer gelijktijdige gebruikers en heeft een grotere capaciteit dan de JET/ACE-database-engine. Deze handleiding geeft u een vloeiend begin van uw SQL Server-reis, helpt access-front-endoplossingen die u hebt gemaakt te behouden en we hopen u te gemotiveerd om Access te gebruiken voor toekomstige databaseoplossingen. De wizard Upsizing is verwijderd uit Access in Access 2013, zodat u nu de Microsoft SQL Server-migratieassistent (SSMA) kunt gebruiken. Volg deze stadia om te migreren.

De fasen van de databasemigratie naar SQL Server

Voordat u begint

De volgende secties bevatten achtergrondinformatie en andere informatie om u op weg te helpen.

Over gesplitste databases

Alle Access-databaseobjecten kunnen zich in één databasebestand of in twee databasebestanden opslaan: een front-enddatabase en een back-enddatabase. Dit wordt het splitsen van de database genoemd en is bedoeld om het delen in een netwerkomgeving te vergemakkelijken. Het back-enddatabasebestand mag alleen tabellen en relaties bevatten. Het front-endbestand mag alleen alle andere objecten bevatten, zoals formulieren, rapporten, query's, macro's, VBA-modules en gekoppelde tabellen aan de back-enddatabase. Wanneer u een Access-database migreert, lijkt deze op een gesplitste database omdat SQL Server werkt als een nieuwe back-end voor de gegevens die zich nu op een server bevinden.

Hierdoor kunt u nog steeds de front-end Access-database met gekoppelde tabellen onderhouden met de SQL Server-tabellen. Op effectieve wijze kunt u de voordelen afleiden van de snelle ontwikkeling van toepassingen die een Access-database biedt, samen met de schaalbaarheid van SQL Server.

Voordelen van SQL Server

Nog steeds nodig om te migreren naar SQL Server? Hier zijn enkele extra voordelen om na te denken over:

  • Meer gelijktijdige gebruikers    SQL Server kan veel meer gelijktijdige gebruikers verwerken dan Access en beperkt de geheugenvereisten wanneer er meer gebruikers worden toegevoegd.

  • Verbeterde beschikbaarheid    Met SQL Server kunt u dynamisch een back-up maken van de database, oplopend of voltooid, terwijl deze wordt gebruikt. 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 werkt meestal beter dan een Access-database, met name bij een grote database van terabytes. Sql Server verwerkt query's bovendien veel sneller en efficiënter door query's parallel te verwerken, met behulp van meerdere native threads binnen één proces om gebruikersaanvragen te verwerken.

  • Verbeterde beveiliging    Met behulp van een vertrouwde verbinding integreert SQL Server met Windows-systeembeveiliging om één geïntegreerde toegang tot het netwerk en de database te bieden, die gebruik maakt van het beste van beide beveiligingssystemen. Dit maakt het veel gemakkelijker om complexe beveiligingsschema's te beheren. SQL Server is de ideale opslag voor gevoelige informatie, zoals nummers voor sociale netwerken, creditcardgegevens en adressen die vertrouwelijk zijn.

  • Onmiddellijke herstelbaarheid     Als het besturingssysteem vast loopt of de stroom uitgaat, kan SQL Server de database binnen een paar minuten automatisch tot een consistente status herstellen zonder tussenkomst van de databasebeheerder.

  • Gebruik van VPN    Toegang en VPN (Virtual Private Networks) kunnen niet samen worden gebruikt. Maar met SQL Server kunnen externe gebruikers nog steeds gebruikmaken van de Access-front-enddatabase op een bureaublad en de SQL Server-back-end achter de VPN-firewall.

  • Azure SQL Server    Naast de voordelen van SQL Server biedt het een dynamische schaalbaarheid zonder downtime, intelligente optimalisatie, globale schaalbaarheid en beschikbaarheid, schakeling van hardwarekosten en verminderd beheer.

De beste optie voor Azure SQL Server kiezen

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

  • Eén database/elasticiteitsgroepen    Deze optie heeft een eigen set resources die wordt beheerd via een SQL Database-server. Eén database lijkt op een database in SQL Server. U kunt ook een elasticiteitsgroep toevoegen. Dit is een verzameling databases met een gedeelde set resources die wordt beheerd via de SQL Database-server. De meestgebruikte SQL Server-functies zijn beschikbaar voor ingebouwde back-ups, patches en herstel. Maar er is geen gegarandeerde exacte onderhoudstijd en migratie van SQL Server kan moeilijk zijn.

  • 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 dat sterk compatibel is met sql Server on-premises. Een beheerd exemplaar beschikt over ingebouwde back-ups, patches, herstel en kan eenvoudig vanuit SQL Server worden gemigreerd. Er zijn echter een klein aantal SQL Server-functies die niet beschikbaar zijn en geen gegarandeerde exacte onderhoudstijd.

  • Azure Virtual Machine    Met deze optie kunt u SQL Server uitvoeren op een virtuele computer in de Azure-cloud. U hebt volledige controle over de SQL Server-engine en een eenvoudig migratiepad. Maar u moet uw back-ups, patches en herstel beheren.

Zie Het migratiepad voor de database kiezen naar Azure en de juiste SQL Server-optie kiezen in Azure voor meer informatie.

Eerste stappen

Er zijn enkele problemen die u op voorgrond kunt oplossen om het migratieproces te stroomlijnen voordat u SSMA gaat uitvoeren:

  • Tabelindexen en primaire sleutels toevoegen    Zorg ervoor dat elke Access-tabel een index en een primaire sleutel heeft. Sql Server vereist dat alle tabellen ten minste één index hebben en dat een gekoppelde tabel een primaire sleutel moet hebben als de tabel kan worden bijgewerkt.

  • Primaire/foreign-sleutelrelaties controleren    Zorg ervoor dat deze relaties zijn gebaseerd op velden met consistente gegevenstypen en -grootte. SQL Server biedt geen ondersteuning voor samengevoegde kolommen met verschillende gegevenstypen en grootten in de beperkingen van de foreign-sleutel.

  • De kolom Bijlage verwijderen    SSMA migreert geen tabellen die de kolom Bijlage bevatten.

Voer de volgende eerste stappen uit voordat u SSMA gaat uitvoeren.

  1. Sluit de Access-database.

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

  3. Als de database de bestandsindeling .mdb heeft,moet u beveiliging op gebruikersniveau verwijderen.

  4. Een back-up van de database maken. Zie Uw gegevens beveiligen met back-ups en herstelprocessen voor meer informatie.

Tip    Overweeg om Microsoft SQL Server Express te installeren op uw bureaublad. Deze versie ondersteunt maximaal 10 GB en is een gratis en gemakkelijkere manier om de migratie uit te voeren en te controleren. Wanneer u verbinding maakt, gebruikt u LocalDB als het database-exemplaar.

Tip    Gebruik indien mogelijk een standaardversie van Access. Als u alleen Microsoft 365 gebruiken, gebruikt u de Access 2010-database-engine om uw Access-database te migreren wanneer u SSMA gebruikt. Zie de herdistribueerbare Microsoft Access Database Engine 2010 voor meer informatie.

SSMA uitvoeren

Microsoft biedt Microsoft SQL Server-migratieassistent (SSMA) om migratie te vereenvoudigen. SSMA migreert voornamelijk tabellen en selectiequery's zonder parameters. Formulieren, rapporten, macro's en VBA-modules worden niet geconverteerd. In de SQL Server-metagegevensverkenner worden uw Access-databaseobjecten en SQL Server-objecten weergegeven, zodat u de huidige inhoud van beide databases kunt bekijken. Deze twee verbindingen worden opgeslagen in het migratiebestand als u besluit om in de toekomst extra objecten over te brengen.

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

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

  2. Na de installatie van SSMA opent u deze op uw bureaublad, bij voorkeur vanaf de computer met het Access-databasebestand.

    U kunt de database ook openen op een computer met toegang tot de Access-database vanuit het netwerk in een gedeelde map.

  3. Volg de eerste instructies in SSMA voor basisinformatie, zoals de SQL Server-locatie, 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 u een gekoppelde tabel wilt bijwerken, voegt u een rowversion-kolom toe door Controlehulpmiddelen >Projectinstellingen > Algemeen te selecteren.

    Het rowversion-veld helpt recordconflicten te voorkomen. Dit rowversion-veld wordt in een gekoppelde SQL Server-tabel gebruikt om te bepalen wanneer de record voor het laatst is bijgewerkt. Als u het rowversion-veld aan een query toevoegt, wordt dit veld ook gebruikt om de rij na een bijwerkbewerking opnieuw te selecteren. Dit verbetert de efficiëntie door schrijfconflictfouten te voorkomen en scenario's voor recordveristing te voorkomen die kunnen optreden wanneer Access verschillende resultaten detecteert van de oorspronkelijke inzending, zoals kan optreden met gegevenstypen voor zwevende punten en triggers die kolommen wijzigen. Vermijd echter het gebruik van het rowversion-veld in formulieren, rapporten of VBA-code. Zie rowversion voor meer informatie.

    Opmerking    Vermijd verwarrende rowversion met tijdstempels. Hoewel het tijdstempel van het trefwoord een synoniem is voor rowversion in SQL Server, kunt u rowversion niet gebruiken als een tijdstempel voor een gegevensinvoer.

  5. Als u nauwkeurige gegevenstypen wilt instellen, selecteert u Hulpmiddelen > Projectinstellingen >Typetoewijzing. Als u bijvoorbeeld alleen Engelse tekst opgeslagen, kunt u het gegevenstype varchar gebruiken in plaats van het gegevenstype nvarchar.

Objecten converteren

SSMA converteert Access-objecten naar SQL Server-objecten, maar kopieert de objecten niet meteen. SSMA bevat een lijst met de volgende objecten die u wilt migreren, zodat u kunt beslissen of u deze naar een SQL Server-database wilt verplaatsen:

  • Tabellen en kolommen

  • Selecteer query's zonder parameters.

  • Primaire en vreemde sleutels

  • Indexen en standaardwaarden

  • Controlebeperkingen (kolom eigenschap met lengte nul toestaan, kolomvalidatieregel, tabelvalidatie)

U kunt het beste het SSMA-evaluatierapport gebruiken, waarin de conversieresultaten worden weergegeven, inclusief fouten, waarschuwingen, informatieberichten, tijdschattingen voor het uitvoeren van de migratie en afzonderlijke stappen voor foutcorrectie die u moet uitvoeren voordat u de objecten daadwerkelijk verplaatst.

Als u databaseobjecten converteert, worden de objectdefinities uit de Access-metagegevens overgeslagen, worden deze ge converteert naar equivalente T-SQL-syntaxis (Transact-SQL)en wordt deze informatie vervolgens in het project geladen. Vervolgens kunt u de objecten SQL Server of SQL Azure en hun eigenschappen bekijken met behulp van SQL Server of SQL Azure Metadata Explorer.

Als u objecten wilt converteren, laden en migreren naar SQL Server, volgt u deze handleiding.

Tip    Nadat u uw Access-database hebt gemigreerd, kunt u het projectbestand opslaan voor later gebruik, zodat u uw gegevens opnieuw kunt migreren voor tests of een definitieve migratie.

Tabellen koppelen

Overweeg om de nieuwste versie van de SQL Server OLE DB- en ODBC-stuurprogramma's te installeren in plaats van de systeemeigen SQL Server-stuurprogramma's te gebruiken die bij Windows worden gehost. Niet alleen zijn de nieuwere stuurprogramma's sneller, maar ze ondersteunen ook nieuwe functies in Azure SQL die niet worden ondersteund door de vorige stuurprogramma's. U kunt de stuurprogramma's installeren op elke computer waarop de geconverteerde database wordt gebruikt. Zie Microsoft OLE DB-stuurprogramma 18 voor SQL Server en Microsoft ODBC-stuurprogramma 17 voor SQL Server voor meer informatie.

Nadat u de Access-tabellen hebt gemigreerd, kunt u een koppeling maken naar de tabellen in SQL Server, waarin nu de gegevens worden gehost. Een directe koppeling vanuit Access biedt ook een eenvoudigere manier om uw gegevens weer te geven in plaats van de complexere hulpprogramma's voor SQL Server-beheer te gebruiken.  U kunt een query uitvoeren op gekoppelde gegevens en deze bewerken, afhankelijk van de machtigingen die zijn ingesteld door de beheerder van de SQL Server-database.

Opmerking    Als u een ODBC-DSN maakt wanneer u tijdens het koppelingsproces een koppeling maakt met de SQL Server-database, maakt u hetzelfde DSN op alle computers waarop de nieuwe toepassing wordt gebruikt of maakt u programmatisch gebruik van de verbindingsreeks die is opgeslagen in het DSN-bestand.

Zie Koppelen of gegevens importeren uit 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 Linked Table Manager in Access te gebruiken om tabellen gemakkelijk te vernieuwen en opnieuw te koppelen. Zie Gekoppelde tabellen beheren voor meer informatie.

Testen en herzien

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

Query's

Alleen selectiequery's worden geconverteerd; Andere query's zijn dat niet, inclusief selectiequery's die parameters bevatten. Sommige query's worden mogelijk niet volledig geconverkeer en SSMA meldt queryfouten tijdens het conversieproces. U kunt objecten die niet worden ge converteerd, handmatig bewerken met behulp van de syntaxis van T-SQL. Syntaxisfouten vereisen ook handmatig het converteren van Access-specifieke functies en gegevenstypen naar SQL Server-functies. Zie voor meer informatie Access SQL vergelijken met SQL Server TSQL.

Gegevenstypen

Access en SQL Server hebben vergelijkbare gegevenstypen, maar let op de volgende mogelijke problemen.

Groot getal    Het gegevenstype Groot getal slaat een niet-monetaire, numerieke waarde op en is compatibel met het gegevenstype SQL-bigint. U kunt dit gegevenstype gebruiken om op efficiënte wijze grote getallen te berekenen, maar hiervoor is de access 16-bits versie (16.0.7812 of hoger) .accdb-databasebestandsindeling vereist en werkt het beter met de 64-bits versie van Access. Zie Het gegevenstype Groot getal gebruiken en kiezen tussen de 64-bits en 32-bits versie van Officevoor meer informatie.

Ja/Nee    Standaard wordt een Access Yes/No-kolom geconverteerd naar een SQL Server-bitveld. Om recordvergrendeling te voorkomen, zorgt u ervoor dat het bitveld is ingesteld op het blokkeren van NULL-waarden. IN SSMA kunt u de bitkolom selecteren om de eigenschap Null-waarden toestaan in te stellen op NEE. Gebruik in TSQL de instructies CREATE TABLE of ALTER TABLE.

Datum en tijd    Er zijn verschillende datum- en tijdoverwegingen:

  • Als het compatibiliteitsniveau van de database 130 (SQL Server 2016) of hoger is en een gekoppelde tabel een of meer datum-/tijd- of datetime2-kolommen bevat, kan in de tabel het bericht #deleted in de resultaten worden weergegeven. Zie gekoppelde Access-tabel voor meer informatie SQL-Server de database retourneert #deleted.

  • Gebruik het gegevenstype Datum/tijd van Access om het gegevenstype datetime toe te staan. Gebruik het uitgebreide Access-gegevenstype Datum/tijd om het gegevenstype datetime2 toe te staan, dat een groter datum- en tijdbereik heeft. Zie Het uitgebreide datum/tijd-gegevenstype gebruiken voor meer informatie.

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

    • DateOrdered Between 1/1/19 and 31/1/19 may not include all orders.

    • DateOrdered Between 1/1/19 00:00:00 AM And 1/31/19 11:59:59 PM omvat alle orders.

Bijlage   Met het gegevenstype Bijlage wordt een bestand opgeslagen in een Access-database. In SQL Server moet u rekening houden met verschillende opties. U kunt de bestanden uit de Access-database extraheren en vervolgens koppelingen naar de bestanden opslaan in uw SQL Server-database. U kunt ook FILESTREAM, FileTables of Remote BLOB Store (RBS) gebruiken om bijlagen op te slaan in de SQL Server-database.

Hyperlink    Access-tabellen hebben hyperlinkkolommen 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 het gedrag van hyperlinks in formulieren en rapporten nog steeds gebruiken als u de eigenschap Hyperlink voor het besturingselement in stelt op waar.

Veld met meerdere waarde    Het veld met meerdere waarden in Access wordt naar SQL Server geconverteerd als een tekstveld dat de set 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 Gegevenstypen vergelijken voor meer informatie over het toewijzen van Access- en SQL Server-gegevenstypen.

Opmerking    Velden met meerdere waardes worden niet geconverteerd en zijn stopgezet in Access 2010.

Zie datum- en tijdtypen,tekenreeksenen binaire typen en numerieke typen voor meer informatie.

Visual Basic

Hoewel VBA niet wordt ondersteund door SQL Server, houd u rekening met de volgende mogelijke problemen:

VBA-functies in query's    Access-query's ondersteunen VBA-functies voor gegevens in een querykolom. Access-query's die gebruikmaken van VBA-functies kunnen echter niet worden uitgevoerd in SQL Server, dus worden alle gevraagde gegevens doorgegeven aan Microsoft Access voor verwerking. In de meeste gevallen moeten deze query's worden geconverteerd naar pass-through-query's.

Door de gebruiker gedefinieerde functies in query's    Microsoft Access-query's ondersteunen het gebruik van functies die zijn gedefinieerd in VBA-modules om de gegevens te verwerken die aan de query's zijn doorgegeven. Query's kunnen zelfstandige query's, SQL-instructies in recordbronnen voor formulieren en rapporten zijn, gegevensbronnen van keuzelijsten met invoervakken en keuzelijsten in formulieren, rapporten en tabelvelden, en standaard- of validatieregelexpressie. SQL Server kan deze door de gebruiker gedefinieerde functies niet uitvoeren. Mogelijk moet u deze functies handmatig opnieuw ontwerpen en deze converteren naar opgeslagen procedures in SQL Server.

Prestaties optimaliseren

De belangrijkste manier om de prestaties van uw nieuwe back-end SQL Server te optimaliseren, is door te bepalen wanneer u lokale of externe query's wilt gebruiken. Wanneer u uw gegevens migreert naar SQL Server, gaat u ook over van een bestandsserver naar een computerdatabasemodel op een clientserver. Volg deze algemene richtlijnen:

  • Voer kleine, alleen-lezen query's uit op de client voor snelle toegang.

  • Voer lange lees-/schrijfquery's uit op de server om optimaal te profiteren van de verwerkingscapaciteit.

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

Prestaties optimaliseren in het databasemodel van de clientserver

Zie Een pass through-query maken voor meer informatie.

Hier volgen aanvullende, aanbevolen richtlijnen.

Logica op de server zetten     Uw toepassing kan ook weergaven, door de gebruiker gedefinieerde functies, opgeslagen procedures, berekende velden en triggers gebruiken om toepassingslogica, bedrijfsregels en beleidsregels, complexe query's, gegevensvalidatie en referentiële integriteitscode op de server te centraleren en te delen in plaats van op de client. Stel uzelf de vraag of deze query of taak beter en sneller op de server kan worden uitgevoerd? Test ten slotte elke query voor optimale prestaties.

Weergaven gebruiken in formulieren en rapporten    Ga in Access als volgt te werk:

  • Voor formulieren gebruikt u een SQL-weergave voor een alleen-lezen formulier en een sql-geïndexeerde weergave voor een lees-/schrijfformulier als de recordbron.

  • Gebruik voor rapporten een SQL-weergave als recordbron. Maak echter een afzonderlijke weergave voor elk rapport, zodat u een specifiek rapport gemakkelijker kunt bijwerken zonder dat dit van invloed is op andere rapporten.

Het laden van gegevens in een formulier of rapport minimaliseren    Geef geen gegevens weer totdat de gebruiker hier om vraagt. Laat bijvoorbeeld de eigenschap van de recordbron leeg, laat gebruikers een filter in uw formulier selecteren en vul vervolgens de recordbron-eigenschap in met het filter. Of gebruik de Where-component van DoCmd.OpenForm en DoCmd.OpenReport om de exacte records weer te geven die de gebruiker nodig heeft. Overweeg om recordnavigatie uit te schakelen.

Wees voorzichtig met heterogene query's   Voorkom dat u een query uitvoert waarin een lokale Access-tabel en een gekoppelde SQL Server-tabel worden gecombineerd, ook wel een hybride query genoemd. Voor dit type query moet Access nog steeds alle SQL Server-gegevens downloaden naar de lokale computer en de query vervolgens uitvoeren. De query wordt niet uitgevoerd in SQL Server.

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

Zie Afstemmingsadviseur voor database-engine,gebruik Performance Analyzer om een Access-databasete optimaliseren en Microsoft Office Access-toepassingen te optimaliseren die zijn gekoppeld aan SQL Server voor meer informatie.

Zie ook

Migratiehandleiding voor Azure-http://datamigration.microsoft.com/

Microsoft Data Migration Blog

Microsoft Access to SQL Server Migration, Conversion and Upsizing

Manieren om een Access-bureaubladdatabase te delen

Meer hulp nodig?

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.

×