Probleem:
Onlangs kreeg ik de vraag om een back-up te maken van een MS SQL database op een Windows Server 2012. Deze server werd al even niet meer gebruikt en na het maken van de back-up zou deze definitief uitgeschakeld worden.
De opdrachtgever had aangegeven dat een Excel of CSV back-up voldoende zou zijn.
In eerste instantie heb ik MS SQL Server Management Studio opgestart. Dit is de tool om MS SQL database te beheren. Met een rechter muisklik op de database kon ik kiezen voor “Task” > “Export Data”. In het scherm dat dan verscheen kon ik in eerste instantie kiezen voor een export naar Excel 97-2003 wat inderdaad een oude versie was.
Ik heb de Access Database Engine driver bijgewerkt zodat ik kon exporteren naar Excel versie 2007. Nog steeds een oude versie. De laatste versie is Excel 2021.
> Goedkoop Office upgraden voor nog geen 10 euro?
Exporteren naar Excel mislukte uiteindelijk toch. Dit kwam omdat de tabellen zoveel records bevatten dat je al snel over het limiet van het aantal rijen ging. Het exporteren liep dan vast met een vreemde foutmelding.
Oplossing 1 – wisselen naar CSV
Vervolgens maar gewisseld naar de methode om te exporteren naar CSV. Dit kon ook binnen MS SQL Server Management Studio. Een Excel bestand kan uit meerdere tabbladen bestaan. Een CSV bestand is eigenlijk maar een lijst met data van 1 tabel. Je zou het kunnen vergelijken met 1 tabblad in een Excel bestand.
Ik kwam er dus al snel achter dat ik voor iedere tabel de Export Data wizard uit zou moeten voeren. Dat betekent dus telkens 5 stappen doorlopen met veel klikwerk. Met ongeveer 40 tabellen vond ik dit geen oplossing. Het was ook nog eens tijdrovend en foutgevoelig.
Oplossing 2 – TablePlus installeren
Ik gebruik sinds een aantal jaren TablePlus als vervanger van MySQL Workbench. Een goed programma om databases en tabellen te beheren. Zelfs in de gratis is voldoende maar gelimiteerd tot 2 tabbladen naast elkaar. Elke tabel of query scherm open je op een tabblad. Voor 90 dollar heb je die beperkingen niet.
Aangezien oplossing 1 niet echt succesvol was heb ik TablePlus geïnstalleerd. Deze werkte nog op Windows Server 2012.
TablePlus heeft de optie om exports te maken naar CSV, JSON of SQL. Geen Excel ondersteuning wat prima is. Helaas blijft de beperking van CSV bestaan dat je per tabel een export moet maken.
Alleen het voordeel is dat ik geen wizard met 5 stappen hoef te doorlopen:
- Je klikt op de tabel zodat de records worden ingeladen
- Klik vervolgens rechts onderin op “Filters” en daarna bovenin op “Export”
- Kies in het pop-up scherm dat verschijnt voor CSV
- Klik onderin op de knop “Export”
TablePlus onthoud de instellingen voor de volgende keer dat je exporteer.
Deze stappen 40 keer herhalen gaat veel sneller.
Controleer de export – Niet alle records geëxporteerd:
Een aantal CSV bestanden heb ik gecontroleerd en ik zag dat deze leeg waren. In sommige gevallen zaten er wel enkele honderden of duizenden lege regels in de CSV bestanden. Het leek erop dat TablePlus ziet dat er bijvoorbeeld 5.000 records in een tabel zitten, de data niet heeft, maar wel regels toevoegt aan het bestand net of er data is.
De oplossing bleek om eerst te wachten totdat TablePlus alle records in de lijst in het programma had ingeladen. Met honderd records is dat zo gedaan. Maar met 100.000+ records kan het wel enkele seconden duren. Onderin het scherm zie je een teller staan die het aantal records in een tabel aangeeft.