Zurück zur Artikelliste Artikel
8 Leseminuten

Wie man eine CSV-Datei aus einer T-SQL-Abfrage exportiert

Wenn Sie SQL-Abfragen kennen, um Daten aus Datenbanken auszuwählen, können Sie leicht an Informationen gelangen. Es gibt jedoch viele Situationen, in denen wir Daten in eine andere Plattform oder Anwendung exportieren müssen. Die CSV-Datei ist eine Lösung für dieses Problem.

Wenn Sie SQL vollständig beherrschen möchten, probieren Sie unseren interaktiven SQL von A bis Z Kurs. Er enthält 7 praktische SQL-Kurse, die Sie von einem Anfänger zu einem fortgeschrittenen SQL-Benutzer machen. Melden Sie sich jetzt kostenlos an!

In diesem Artikel erfahren Sie, was eine CSV-Datei ist und warum Sie sie verwenden sollten. Außerdem lernen Sie 5 Methoden kennen, um Daten aus einer SQL Server-Datenbank in eine CSV-Datei zu exportieren. Fangen wir an!

Was ist eine CSV-Datei, und warum wird sie verwendet?

Sie fragen sich wahrscheinlich, warum Sie Daten in eine CSV-Datei exportieren sollten. Zunächst einmal ist die CSV-Datei (.csv) ein sehr beliebtes Datenformat, das von vielen Anwendungen wie Excel, Calc, verschiedenen IDEs und Datenbankservern akzeptiert wird. Außerdem hat es eine sehr einfache Struktur, da die charakteristischen Merkmale Werte in durch Kommas getrennten Zeilen sind.

Die erste Zeile enthält sehr oft den Zeilenkopf. Sehen Sie sich die folgende Beispieldatei an:

SQL-Export in CSV-Befehl

Wie Sie sehen können, enthält die erste Zeile die Überschrift mit den Spaltennamen: id, first_name, und last_name. Die folgenden Zeilen enthalten die Werte, die den Spaltenüberschriften entsprechen, getrennt durch Kommata.

Die Popularität und die breite Akzeptanz dieses Formats ermöglichen den Austausch von Daten zwischen verschiedenen Plattformen und Anwendungen. Sie können Daten aus einer Datenbank exportieren und sie in eine andere Software wie Excel importieren.

Diese Unabhängigkeit ermöglicht auch die Übertragung von Daten zwischen verschiedenen Betriebssystemen wie Windows und Linux. Viele Programme verfügen aus diesem Grund über eine Option zum Export und Import von/nach CSV-Dateien. Unternehmen, die mit Daten auf verschiedenen Plattformen arbeiten, können mit denselben Daten arbeiten und Daten verschieben, indem sie das CSV-Format für den Import und Export verwenden.

Das CSV-Format bietet auch eine einfache Möglichkeit, Daten zu verstehen, da es für Menschen lesbar ist. Der Inhalt der CSV-Datei kann als Tabellenkalkulation in Excel oder Calc angezeigt werden.

Die zu exportierenden Beispieldaten

Nehmen wir an, wir haben dieses eine Tabellenprodukt in der SQL Server-Datenbank:

idnamecategory
1keyboardelectronics
2brickstoys
3lampelectronics
4wood cartoys
5balltoys

Wie Sie wissen, können wir mit einer einfachen SQL-Abfrage alle Zeilen aus dieser Tabelle abrufen:

SELECT * FROM product;

Wenn wir sie ausführen, werden alle Daten im SQL-Ausgabefenster angezeigt. Was aber, wenn wir die gleichen Daten in anderen Anwendungen wie Excel sehen wollen? Lesen Sie weiter, um verschiedene Methoden für den Export von Daten aus einer Tabelle in eine CSV-Datei kennen zu lernen.

Die Methoden für den Export von SQL-Daten aus einer Tabelle in eine CSV-Datei

Jetzt werden wir sehen, wie man Daten aus einer Abfrage auf einem SQL Server in eine CSV-Datei exportiert. Hierfür gibt es verschiedene Methoden.

Methode 1: Verwendung des SQL Server Management Studio

Diese Methode nutzt das SSMS-GUI-Tool, das für die Verwaltung von Objekten und Daten in SQL Server entwickelt wurde.

Starten Sie zunächst SSMS. Gehen Sie im Windows-Betriebssystem auf "Start", erweitern Sie die "Microsoft SQL Server Tools" und wählen Sie "Management Studio".

SQL-Export in CSV-Befehl

Im nächsten Schritt erweitern Sie den Knoten Datenbank und klicken mit der rechten Maustaste auf Ihre Datenbank, die die Tabelle product enthält (unsere Datenbank ist store). Wählen Sie im Menü "Aufgaben" und dann "Daten exportieren".

SQL-Export in CSV-Befehl

Der Import- und Export-Assistent wird angezeigt:

SQL-Export in CSV-Befehl

Klicken Sie auf die Schaltfläche "Weiter". Wählen Sie in der Liste "Datenoptionen" die Option "SQL Server Native Client":

SQL-Export in CSV-Befehl

Füllen Sie weitere Felder aus, wie z.B. den Namen des Servers, Login und Passwort für den Server, und wählen Sie die Datenbank, in der die Tabelle gespeichert ist, die Sie exportieren möchten (unsere Tabelle product ist in der Datenbank database speichern):

SQL-Export in CSV-Befehl

Fahren Sie mit dem nächsten Schritt fort, indem Sie auf die Schaltfläche "Weiter" klicken.

Wählen Sie nun das Zieldateiformat. Für eine CSV-Datei wählen Sie "Flat File". Füllen Sie die Felder mit dem Namen der Datei, dem Speicherort und der Codepage aus. Aktivieren Sie die Kontrollkästchen "Unicode" und "Spaltennamen":

SQL-Export in CSV-Befehl

Im nächsten Schritt wählen Sie entweder die Option, alle Daten aus der Tabelle zu übertragen oder eine SQL-Abfrage zu schreiben. Wenn Sie die erste Option wählen, sieht das so aus:

SQL-Export in CSV-Befehl

Wählen Sie die Tabelle product aus der Tabellenliste:

SQL-Export in CSV-Befehl

Klicken Sie im nächsten Schritt auf die Schaltfläche "Weiter".

SQL-Export in CSV-Befehl

Und im letzten Schritt klicken Sie auf die Schaltfläche "Fertigstellen":

SQL-Export in CSV-Befehl

Sie sehen nun die Informationen über Erfolge und Fehler:

SQL-Export in CSV-Befehl

Schließen Sie das Fenster des Assistenten und gehen Sie zu der Datei mit den Daten des Tabellenprodukts. Sie finden sie in den Katalogen im Benutzerordner des Windows-Betriebssystems.

Methode 2: Arbeiten mit einer Ergebnismenge in SSMS - Daten ohne Spaltennamen

Eine andere Methode, die SSMS für den Export von Daten in eine CSV-Datei verwendet, basiert auf den Zeilen einer Ergebnismenge.

Erweitern Sie im Objekt-Explorer-Fenster den Knoten "Datenbank" und wählen Sie die Datenbank aus, die unser Tabellenprodukt enthält. Klicken Sie anschließend auf die Schaltfläche "Neue Abfrage", um den Editor zum Schreiben von SQL-Abfragen zu öffnen. Wählen Sie alle Daten aus der Tabelle product:

SELECT * FROM product;
SQL-Export in CSV-Befehl

Klicken Sie nun auf die Schaltfläche "Ausführen", um die Abfrage auszuführen. In der Ergebnismenge sehen Sie alle Daten aus der Tabelle.

Klicken Sie im nächsten Schritt mit der rechten Maustaste auf die Datenzeilen in der Ergebnismenge und wählen Sie im Menü "Ergebnis speichern unter".

SQL-Export in CSV-Befehl

Wählen Sie im Dateifenster den Zielordner für Ihre CSV-Datei, geben Sie den Namen der Datei in das Feld Dateiname ein - zum Beispiel "product-store" - und klicken Sie auf OK. Diese Datei enthält Ihre Daten, jedoch ohne die Spaltennamen.

Methode 3: Arbeiten mit einer Ergebnismenge in SSMS - Daten mit Kopfzeile

Diese Methode ähnelt der vorherigen Methode. Sie basiert ebenfalls auf SSMS und der Ergebnismenge, aber der Unterschied liegt in den Auswahlmöglichkeiten, die Sie im Menü treffen.

Klicken Sie zunächst mit der rechten Maustaste auf die Ergebnismenge und wählen Sie "Select All" aus dem Menü.

SQL-Export in CSV-Befehl

Damit werden alle Zeilen ausgewählt.

SQL-Export in CSV-Befehl

Klicken Sie mit der rechten Maustaste auf die ausgewählten Zeilen und wählen Sie im Menü "Mit Kopfzeilen kopieren". Gehen Sie zu einer leeren CSV-Datei und fügen Sie den Inhalt einfach ein.

Methode 4: Verwendung des Dienstprogramms SQLCMD

SQLCMD ist ein Tool, mit dem Sie ein Terminal in einem Betriebssystem wie Windows verwenden können, um SQL-Anweisungen oder Skripte auszuführen. Wir können es verwenden, um Daten in eine CSV-Datei zu exportieren.

Öffnen Sie zunächst cmd in Ihrem Betriebssystem und geben Sie den folgenden Befehl ein:

sqlcmd -S DESKTOP-INGEKE8\MSSQLSERVER,1433
-Q "select * from store.dbo.product"
–s "," –o "C:\Users\dora\Documents\products_list.csv" -E

Führen Sie ihn aus, indem Sie "Enter" drücken.

Lassen Sie mich dies genauer erklären.

Das erste Wort ist der Name des Tools, sqlcmd. Danach folgen die Optionen (bestimmte Buchstaben, denen jeweils ein Bindestrich vorangestellt ist), die für den Export von Daten aus einer SQL-Abfrage in eine CSV-Datei erforderlich sind.

Die erste Option ist -S, gefolgt von dem Namen des Servers, einem Backslash, dem Namen der SQL Server-Instanz, einem Komma und der Portnummer für die Verbindung. In meinem Fall befindet sich SQL Server auf einem Rechner namens DESKTOP-INGEKE8, und die Instanz ist MSSQLSERVER. Beachten Sie, dass der Standardport 1433 ist.

Die zweite Option ist -Q. Darauf folgt eine SELECT Anweisung, um die Daten aus der Tabelle zu erhalten. Schließen Sie die Anweisung SELECT in Anführungszeichen ein. In unserem Beispiel, speichern ist die Datenbank, dbo ist das Standardschema, und product ist der Name der Tabelle.

Die dritte Option ist -s, gefolgt von einem Komma in Anführungszeichen. Damit wird das Komma als Trennzeichen zwischen den Spalten in der CSV-Datei festgelegt.

Die vierte Option ist -o, um den Pfad und den Namen der Ausgabedatei anzugeben. Schließen Sie den Pfad und den Dateinamen in Anführungszeichen ein.

Die letzte Option ist -E. Dies zeigt an, dass es sich um eine vertrauenswürdige Verbindung zum Datenbankserver handelt.

SQL-Export in CSV-Befehl

Das Ergebnis ist eine CSV-Datei (products_list.csv), die die Daten aus der Tabelle product der Datenbank store unter dem von Ihnen angegebenen Pfad.

bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv -S DESKTOP-INGEKE8\SQLEXPRESS -c -t"," -T
bcp "SELECT * from product WITH (NOLOCK)" queryout c:\product-store.csv -c -T

Methode 5: Verwendung des BCP-Tools

Die Verwendung des BCP-Tools ist ähnlich wie die vorherige Methode. BCP ist ein Befehlszeilenprogramm, das Daten von/zu einer SQL-Instanz und von/zu einer Datendatei unter Verwendung eines bestimmten Dateiformats kopiert. Sie können dieses Tool im Terminal Ihres Betriebssystems verwenden.

Öffnen Sie cmd im Windows-Betriebssystem und führen Sie den folgenden Befehl aus:

bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv
-S DESKTOP-INGEKE8\MSSQLSERVER,1433 -c -t"," -T

Das erste Wort ist bcp, gefolgt von den Namen der Datenbank, des Schemas und der Tabelle, getrennt durch einen Punkt. Dann gibt der Befehl out den Pfad zur Ergebnisdatei an. In meinem Fall ist das C:\Users\dora\Desktop\product-data.csv.

Dann folgt die Option -S, gefolgt vom Namen des Servers, einem Backslash, dem Namen der SQL Server-Instanz, einem Komma und der Portnummer für die Verbindung. In meinem Fall befindet sich SQL Server auf einem Rechner namens DESKTOP-INGEKE8, und die Instanz ist MSSQLSERVER. Beachten Sie, dass der Standardport 1433 ist.

Die Option -t (in Kleinbuchstaben) definiert das in Anführungszeichen eingeschlossene Trennzeichen. In diesem Fall ist das Trennzeichen ein Komma.

Die Option -T (in Großbuchstaben) steht für die vertrauenswürdige Windows-Authentifizierung.

Wenn Sie dies ausführen, sehen Sie etwas wie das unten stehende Bild, das Sie über den Status des Kopierens Ihrer Daten informiert:

SQL-Export in CSV-Befehl

Exportieren wir eine SQL-Tabelle in eine CSV-Datei!

In diesem Artikel haben Sie erfahren, was eine CSV-Datei ist, wie dieses Format aufgebaut ist und warum es in Anwendungen oder Plattformen verwendet wird. Sie haben auch mehrere Methoden zum Exportieren von Daten aus einer Tabelle in einer Microsoft SQL Server-Datenbank in eine CSV-Datei gesehen.

Vielleicht interessiert Sie der Artikel "How to Import CSVs to PostgreSQL Using PgAdmin" über den Export in eine CSV-Datei aus einer PostgreSQL-Datenbank . Oder lernen Sie mehr über SQL Server mit Kursen auf unserer Plattform LearnSQL.de.