Hoe importeer ik een Excel-bestand in SQL Server?

Ik heb gegevens in een Excel-bestand – eigenlijk xlsx-indeling sinds het nu 2020 is. Mijn vereiste is om deze gegevens als volgt in SQL Server te krijgen:

  1. ad hoc, waarbij het gebruiksscenario het voeden van tabellen met testgegevens is, of onregelmatige gegevensladingen van kleine hoeveelheden gegevens (zeg < 3k rijen), en

  2. Op een herhaalbare, robuuste en mogelijk geautomatiseerde manier voor een productiesysteem.

Als het mogelijk is, moeten degenen die antwoorden plaatsen nadenken over de beveiligings- en configuratiekosten van hun voorstellen.

Ik smeek de lezers om deze schijnbaar vage vraag open te laten, aangezien ik hoop suggesties te verzamelen (hopelijk met links naar voorbeelden) voor alle opties en zo een verzamelde lijst te maken.


Antwoord 1, autoriteit 100%

Er zijn veel artikelen over het schrijven van code om een Excel-bestand te importeren, maar dit is een handmatige/snelkoppelingsversie:

Als u uw Excel-bestand niet programmatisch met code hoeft te importeren, kunt u dit heel snel doen via het menu in SQL Management Studio.

De snelste manier om uw Excel-bestand in SQL te krijgen, is door de importwizard te gebruiken:

  1. Open SSMS(Sql Server Management Studio) en maak verbinding met de database waarin u uw bestand wilt importeren.
  2. Gegevens importeren: klik in SSMS in Objectverkenner onder ‘Databases’ met de rechtermuisknop op de doeldatabase, selecteer Taken, gegevens importeren. Er verschijnt een importwizard (u kunt meestal gewoon op ‘Volgende’ klikken op het eerste scherm).

  1. Het volgende venster is ‘Kies een gegevensbron‘, selecteer Excel:

    • In de vervolgkeuzelijst ‘Gegevensbron’ Selecteer Microsoft Excel (deze optie zou automatisch moeten verschijnen als u Excel hebt geïnstalleerd).

    • Klik op de knop ‘Bladeren’ om het pad naar het Excel-bestand dat u wilt importeren te selecteren.

    • Selecteer de versie van het Excel-bestand (97-2003 is meestal prima voor bestanden met een .XLS-extensie of gebruik 2007 voor nieuwere bestanden met een .xlsx-extensie)
    • Vink aan met de checkbox ‘First Row Hoats’ als uw Excel-bestand kopteksten bevat.
    • Klik op Volgende.

  1. Op de ‘Kies een bestemming ‘ scherm, Selecteer bestemmingsdatabase :
    • Selecteer de ‘Servernaam’, authenticatie (meestal uw SQL-gebruikersnaam & amp; wachtwoord) en selecteer een database als bestemming. Klik op Volgende.

  1. Op de ‘specificeer tabel kopie of query ‘ venster:

    • Selecteer voor eenvoud ‘Gegevens kopiëren van een of meer tabellen of weergaven’, klik op Volgende.
  2. Selecteer Source Tables: ‘ Kies het werkblad (en) in uw Excel-bestand en geef een bestemmingstabel op voor elk werkblad. Als u geen tafel hebt, zal de wizard zeer vriendelijk een nieuwe tabel maken die overeenkomt met alle kolommen van uw spreadsheet. Klik volgende.

  1. Klik op Voltooien.

Antwoord 2, Autoriteit 16%

U kunt ook OpenRowset gebruiken om Excel-bestand in SQL Server te importeren.

SELECT * INTO Your_Table FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                        'Excel 12.0;Database=C:\temp\MySpreadsheet.xlsx',
                        'SELECT * FROM [Data$]')

Other episodes