Wie man SQL Server-Daten in eine Excel-Datei importiert und exportiert

Es gibt mehrere Möglichkeiten, SQL Server-Daten in eine Excel-Datei zu exportieren/importieren. In diesem Artikel werden einige Möglichkeiten zum Importieren und Exportieren von SQL Server-Daten in eine Excel-Datei erläutert:

  • Exportieren Sie SQL Server-Daten in eine Excel-Datei mit
    • dem SQL Server-Import- und Export-Assistenten
    • T-.SQL-Code
    • Export in Excel aus ApexSQL Complete
  • Importieren von SQL Server-Daten in Excel mithilfe des Assistenten für Datenverbindungen

Exportieren von SQL Server-Daten in eine Excel-Datei mithilfe des Assistenten für SQL Server-Import und -Export

Im SQL Server Management Studio (SSMS), gibt es eine Funktion, die den Export von Daten aus einer Datenquelle in eine andere Datenquelle ermöglicht; In diesem Fall werden die Daten aus dem SQL Server über den Export-Assistenten in eine Excel-Datei kopiert.

Um diese Funktion zu nutzen, gehen Sie in den Objekt-Explorer, klicken Sie mit der rechten Maustaste auf eine beliebige Datenbank (z.B.. AdventureworksDW2016CTP3), wählen Sie unter Aufgaben den Befehl Daten exportieren:

Dadurch öffnet sich das Fenster des Assistenten für den SQL-Server-Import und -Export:

Um mit dem Export der SQL-Server-Daten in eine Excel-Datei fortzufahren, klicken Sie auf die Schaltfläche Weiter. Daraufhin wird das Fenster Datenquelle auswählen geöffnet. In diesem Fenster kann eine Quelle ausgewählt werden, aus der Sie Daten kopieren möchten:

Wählen Sie im Dropdown-Feld Datenquelle den Eintrag SQL Server Native Client 11.0. Wählen Sie im Dropdown-Feld Servername die SQL Server-Instanz aus, von der die Daten kopiert werden sollen. Wählen Sie im Abschnitt „Authentifizierung“ den Authentifizierungsmodus für die Datenquellenverbindung und im Dropdown-Feld „Datenbank“ die Datenbank, aus der die Daten kopiert werden sollen. Nachdem alle diese Optionen eingestellt sind, klicken Sie auf die Schaltfläche Weiter, um fortzufahren.

Dadurch öffnet sich das Fenster Ziel wählen, in dem angegeben werden kann, wohin die Daten aus der Datenquelle kopiert werden sollen:

Im Dropdown-Feld Ziel wählen Sie den Eintrag Microsoft Excel. Wählen Sie unter dem Excel-Dateipfad das Ziel für die kopierten Daten aus der SQL Server-Datenquelle (SQL Data.xlsx). Wählen Sie im Dropdown-Feld Excel-Version die Version des Microsoft Excel-Arbeitsblatts aus. Nachdem Sie alle Einstellungen vorgenommen haben, klicken Sie auf die Schaltfläche Weiter, um fortzufahren. Nach dem Drücken der Schaltfläche Weiter kann jedoch folgende Warnmeldung erscheinen:

Der Vorgang konnte nicht abgeschlossen werden.
ZUSÄTZLICHE INFORMATIONEN:
Der Anbieter ‚Microsoft.ACE.OLEDB.12.0‘ ist auf dem lokalen Rechner nicht registriert. (System.Data)

Dies passiert, weil SSMS eine 32-Bit-Anwendung ist und wenn Sie den Export-Assistenten über SSMS starten, wird eine 32-Bit-Version des Export-Assistenten gestartet. Auf der anderen Seite ist der Rechner (Betriebssystem), auf dem SSMS installiert ist, eine 64-Bit-Version und der installierte SQL Server ist eine 64-Bit-Version.

Um dieses Problem zu lösen, schließen Sie SSMS, gehen Sie ins Startmenü und suchen Sie die 64-Bit-Version des SQL Server Import- und Export-Assistenten:

Nach dem Start dieses SQL Server-Import- und Export-Assistenten erscheint das gleiche Fenster, das auch über SSMS verwendet wird. Nachdem Sie alle vorherigen Optionen eingestellt haben, klicken Sie auf die Schaltfläche Weiter. Es erscheint das Fenster Tabellenkopie oder Abfrage angeben:

In diesem Fenster kann angegeben werden, ob Daten aus einer oder mehreren Tabellen und Views kopiert werden sollen oder ob die Ergebnisse einer Abfrage kopiert werden sollen.

Wählen Sie das Optionsfeld Daten aus einer oder mehreren Tabellen oder Views kopieren und klicken Sie auf die Schaltfläche Weiter. Im Fenster Quelltabelle und Ansichten auswählen können Sie eine oder mehrere Tabellen und Ansichten auswählen, aus denen Sie SQL Server-Daten in eine Excel-Datei exportieren möchten, indem Sie das Kontrollkästchen neben dem Namen der Tabelle/View anklicken:

Wie Sie vielleicht bemerken, wird der Name der Tabelle/View in die Spalte Ziel kopiert, sobald das Kontrollkästchen neben einer Tabelle/View aktiviert ist. Dieser Name stellt den Namen des Blatts dar, in dem die Daten aus der Tabelle abgelegt werden. Dieser Name kann beliebig geändert werden, aber für den Moment lassen wir ihn so, wie er ist:

Um eine Vorschau zu sehen, welche Daten in eine Excel-Datei erzeugt werden, klicken Sie auf die Schaltfläche Vorschau:

Nachdem Sie ausgewählt haben, welche Tabellen/Ansichtsdaten in eine Excel-Datei kopiert werden sollen, klicken Sie auf die Schaltfläche Weiter:

Im Fenster „Als Ausführungspaket speichern“ aktivieren Sie das Kontrollkästchen „Sofort ausführen“ und klicken auf die Schaltfläche „Weiter“:

Im Fenster „Assistent abschließen“ werden alle Optionen angezeigt, die für den Exportvorgang gewählt wurden. Um den Prozess des Exports von SQL Server-Daten in eine Excel-Datei abzuschließen, klicken Sie auf die Schaltfläche Fertig stellen. Das letzte Fenster des Assistenten für den SQL Server-Import und -Export zeigt an, ob die Daten erfolgreich exportiert wurden oder ob beim Exportieren der Daten Fehler aufgetreten sind:

In unserem Fall wurden die Daten erfolgreich in die SQL Data.xlsx-Datei übertragen:

Exportieren von SQL Server-Daten in eine Excel-Datei mit T-SQL-Code

Mit dem Transact-SQL OPENROWSET können Sie SQL Server-Daten über SSMS in eine Excel-Datei exportieren. Geben Sie in einem Abfrage-Editor den folgenden Code ein und führen Sie ihn aus:

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;
Database=C:\Users\Zivko\Desktop\SQL Data.xlsx;','SELECT * FROM ')
SELECT * FROM dbo.DimScenario

Beim Ausführen des obigen Codes kann jedoch folgender Fehler auftreten:

Msg 15281, Level 16, State 1, Line 1
SQL Server blockiert den Zugriff auf STATEMENT ‚OpenRowset/OpenDatasource‘ der Komponente ‚Ad Hoc Distributed Queries‘, da diese Komponente als Teil der Sicherheitskonfiguration für diesen Server deaktiviert ist. Ein Systemadministrator kann die Verwendung von „Ad Hoc Distributed Queries“ mithilfe von sp_configure aktivieren. Weitere Informationen zum Aktivieren von ‚Ad Hoc Distributed Queries‘ finden Sie in SQL Server Books Online unter dem Stichwort ‚Ad Hoc Distributed Queries‘.

Um diesen Fehler zu beheben, sollte die Option „Ad Hoc Distributed Queries“ aktiviert werden. Dies kann mit Hilfe der sp_configure-Prozedur und dem Ausführen des folgenden SQL-Codes in einem Abfrage-Editor geschehen:

EXEC sp_configure 'show advanced options', 1RECONFIGUREEXEC sp_configure 'Ad Hoc Distributed Queries', 1RECONFIGURE

Nach der Ausführung des obigen Codes erscheint die folgende Meldung, die anzeigt, dass die Optionen show advanced options und Ad Hoc Distributed Queries aktiviert sind:

Die Konfigurationsoption ’show advanced options‘ wurde von 0 auf 1 geändert. Führen Sie die RECONFIGURE-Anweisung zur Installation aus.
Konfigurationsoption ‚Ad Hoc Distributed Queries‘ von 0 auf 1 geändert. Führen Sie die RECONFIGURE-Anweisung aus, um zu installieren.

Wenn nun erneut der Code ausgeführt wird:

INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;
Database=C:\Users\Zivko\Desktop\SQL Data.xlsx;','SELECT * FROM ')
SELECT * FROM dbo.DimScenario

Es kann folgender Fehler auftreten:

OLE DB-Anbieter „Microsoft.ACE.OLEDB.12.0“ für den verknüpften Server „(null)“ liefert die Meldung „Die Microsoft Access Datenbank-Engine kann die Datei “ nicht öffnen oder in sie schreiben. Sie ist bereits von einem anderen Benutzer exklusiv geöffnet, oder Sie benötigen die Berechtigung zum Anzeigen und Schreiben ihrer Daten.“.
Msg 7303, Level 16, State 1, Line 1
Kann das Datenquellenobjekt des OLE DB-Providers „Microsoft.ACE.OLEDB.12.0“ für den verknüpften Server „(null)

Dies geschieht in der Regel aufgrund unzureichender Berechtigungen.

Weitere Informationen zur Behebung dieser Probleme finden Sie auf der Seite Abfrage von Excel-Daten mit verknüpften Servern von SQL Server.

Eine Möglichkeit zur Behebung dieses Problems besteht darin, SSMS als Administrator zu öffnen und den Code erneut auszuführen. Diesmal kann jedoch ein anderer Fehler auftreten:

Msg 213, Level 16, State 1, Line 1
Spaltenname oder Anzahl der gelieferten Werte stimmt nicht mit der Tabellendefinition überein.

Um dies zu beheben, öffnen Sie eine Excel-Datei (z.B. SQL Data.xlsx), für die geplant ist, die Daten aus der SQL Server-Tabelle (z.B. dbo.DimScenario) zu speichern, und geben Sie die Spaltennamen ein, die den Spaltennamen aus der Tabelle DimScenario entsprechen:

Schließen Sie die SQL Data.xlsx-Datei und führen Sie den Code noch einmal aus:

Jetzt erscheint folgende Meldung:

(3 Zeilen betroffen)

Schließlich werden die Daten aus der SQL-Server-Tabelle in die Excel-Datei kopiert:

Importieren von SQL Server-Daten in Excel mithilfe des Datenverbindungsassistenten

Eine weitere Möglichkeit, Daten aus der SQL Server-Tabelle in eine Excel-Datei zu kopieren, ist die Verwendung des Datenverbindungsassistenten von Excel.

Um das zu erreichen, öffnen Sie eine Excel-Datei (z. B. SQL Data.xlsx), in die Sie Daten importieren möchten. Wählen Sie auf der Registerkarte Daten im Untermenü Aus anderer Quelle den Befehl Aus SQL-Server:

Dadurch öffnet sich der Dialog Datenverbindungsassistent. Geben Sie im Bereich Servername den Namen der SQL Server-Instanz ein, von der Daten kopiert werden sollen. Wählen Sie im Abschnitt Anmeldeinformationen den Authentifizierungsmodus für die Datenquellenverbindung und klicken Sie auf die Schaltfläche Weiter:

Wählen Sie aus dem Dropdown-Feld Wählen Sie die Datenbank aus, die die gewünschten Daten enthält, und wählen Sie die Datenbank, aus der die Daten kopiert werden sollen. Im Raster werden alle verfügbaren Tabellen und Ansichten aufgelistet. Wählen Sie eine gewünschte Tabelle / Ansicht (z. B. DimScenario) und klicken Sie auf die Schaltfläche Weiter, um fortzufahren.

Lassen Sie in diesem Fenster alles so, wie es ist, und klicken Sie auf die Schaltfläche Fertig stellen:

Im Dialog Daten importieren wählen Sie das Optionsfeld Tabelle, unter dem Abschnitt Wo sollen die Daten abgelegt werden? wählen Sie das Optionsfeld Vorhandenes Arbeitsblatt und drücken Sie die Schaltfläche OK:

Nach dem Drücken der Schaltfläche OK werden die Daten aus der Tabelle DimScenario in die Datei SQL Data.xslx-Datei kopiert:

Exportieren Sie SQL Server-Daten in eine Excel-Datei mit Export to Excel von ApexSQL Complete

Mit der Funktion Export to Excel von ApexSQL Complete, einem Add-In für SSMS und Visual Studio, können Sie Daten aus der SQL Server-Tabelle mit einem Klick in eine Excel-Datei exportieren.

Geben Sie in einem Abfrage-Editor den folgenden Code ein und führen Sie ihn aus:

SELECT * FROM dbo.DimScenario ds

Wählen Sie in der Ergebnistabelle die Daten aus, die Sie in eine Excel-Datei exportieren möchten, klicken Sie mit der rechten Maustaste in die Ergebnistabelle und wählen Sie aus dem Kontextmenü die Option In Excel exportieren:



Dadurch wird eine neue Excel-Arbeitsmappe geöffnet und die ausgewählten Daten aus der Ergebnistabelle werden in das erste Arbeitsblatt kopiert:

Mehr zum Export nach Excel über ApexSQL Complete finden Sie auf der Seite Export nach Excel.

Siehe auch:

  • Tutorial: Daten in Excel importieren und ein Datenmodell erstellen
  • Beginnen Sie mit diesem einfachen Beispiel des Import- und Export-Assistenten
  • Wie Sie Excel-Daten mit Hilfe von SQL Server Linked Server abfragen
  • Exportieren nach Excel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.