it-swarm.com.de

So exportieren Sie eine SQL Server 2005-Abfrage in CSV

Ich möchte einige SQL Server 2005-Daten in das CSV-Format exportieren (durch Kommas getrennt). Ich kann mir viele komplizierte Wege vorstellen, aber ich möchte es auf die richtige Weise machen. Ich habe mir bcp angesehen, aber ich kann nicht herausfinden, wie die Anführungszeichen um die Felder gesetzt werden (außer, sie mit den Feldwerten zu verketten, was hässlich ist). Ich denke, ich könnte es mit sqlcmd und -o machen, aber das scheint aus demselben Grund hässlich zu sein.

Gibt es eine bcp-Methode, um dies zu tun?

Gibt es eine vernünftige SQL-Methode, um dies zu tun?

Gibt es im Management Studio ein tolles, einfaches Dienstprogramm, das ich einfach übersehen habe?

63
John M Gant

Wählen Sie in Management Studio die Datenbank aus, klicken Sie mit der rechten Maustaste, und wählen Sie Tasks->Export Data aus. Dort werden Optionen zum Exportieren in verschiedene Arten von Formaten angezeigt, einschließlich CSV, Excel usw.

Sie können Ihre Abfrage auch über das Abfragefenster ausführen und die Ergebnisse in CSV speichern.

62
Jose Basilio

Legen Sie in Management Studio die Abfrageoptionen für die Ausgabe in eine Datei fest, und legen Sie unter Optionen-> Abfrageergebnisse die Ausgabe in einer Datei mit einem Komma als Trennzeichen fest.

44
Sijin

Wenn Sie Management Studio nicht verwenden können, verwende ich sqlcmd.

sqlcmd -q "select col1,col2,col3 from table" -oc:\myfile.csv -h-1 -s","

Das ist der schnelle Weg von der Kommandozeile aus.

31
curtisboy

Ich musste noch etwas anderes tun als das, was Sijin gesagt hatte, damit es richtig in SQL Server Management Studio 2005 zitiert werden konnte

Tools->Options->Query Results->Sql Server->Results To Grid

Setzen Sie einen Haken neben dieser Option:

Quote strings containing list separators when saving .csv results

Hinweis: Die obige Methode funktioniert nicht für SSMS 2005 Express! Soweit ich weiß, gibt es keine Möglichkeit, die Felder beim Exportieren von Ergebnissen nach .csv mit SSMS 2005 Express zu zitieren.

25
goku_da_master

Ja, es gibt ein sehr einfaches Dienstprogramm in Management Studio, wenn Sie lediglich Abfrageergebnisse in einer CSV speichern möchten.

Klicken Sie mit der rechten Maustaste auf die Ergebnismenge und wählen Sie "Ergebnisse speichern unter". Der Standarddateityp ist CSV.

9
Pete H.

Wenn dies Ihren Anforderungen entspricht, können Sie bcp in der Befehlszeile verwenden, wenn Sie dies häufig tun oder in einen Produktionsprozess integrieren möchten.

Hier ist ein Link , der die Konfiguration beschreibt.

6
dkretz

Für Ad-hoc-Anfragen:

Ergebnisse im Rastermodus anzeigen (STRG + D), Abfrage ausführen, im Ergebnisraster oben links klicken, in Excel einfügen, als CSV speichern Sie können möglicherweise direkt in eine Textdatei einfügen (kann es jetzt nicht versuchen)

Oder "Results to file" hat auch Optionen für CSV

Oder "Ergebnisse zum Text" mit Komma-Trennzeichen

Alle Einstellungen unter Tool..Options und Query .. Optionen (ich denke, ich kann nicht prüfen)

5
gbn

In SQL 2005 ist das einfach: 1. Öffnen Sie das SQL Server Management Studio, und kopieren Sie die benötigte SQL-Anweisung in die TSQL-Instanz, z. B. exec sp_whatever Query-> Results to Grid 3. Markieren Sie die SQL-Anweisung und führen Sie sie aus 4. Markieren Sie die Datenergebnisse (klicken Sie mit der linken Maustaste auf den oberen linken Bereich des Ergebnisrasters) 5. Klicken Sie nun mit der rechten Maustaste und wählen Sie Ergebnisse speichern unter 6. Wählen Sie unter Dateityp die Option CSV aus, geben Sie einen Dateinamen ein, wählen Sie einen Speicherort aus und klicken Sie auf Speichern.

Einfach! 

2
Scott

nocount einschalten 

die Anführungszeichen sind da, verwenden Sie -w2000, um jede Zeile in einer Zeile zu halten.

2
stevej6x7

Ich denke, der einfachste Weg dazu ist Excel. 

  1. Öffnen Sie eine neue Excel-Datei.
  2. Klicken Sie auf die Registerkarte Daten
  3. Wählen Sie andere Datenquellen aus
  4. Wählen Sie SQL Server aus
  5. Geben Sie Ihren Servernamen, die Datenbank, den Tabellennamen usw. ein.

Wenn Sie eine neuere Version von Excel haben, können Sie die Daten von PowerPivot importieren und dann in eine Tabelle einfügen.

1
salvationishere

In SQL Server 2012 - Management Studio:

Lösung 1:

Führen Sie die Abfrage aus

Klicken Sie mit der rechten Maustaste auf das Ergebnisfenster

Wählen Sie im Menü die Option Ergebnisse speichern unter

Wählen Sie CSV

Lösung 2:

Klicken Sie mit der rechten Maustaste auf die Datenbank

Wählen Sie Aufgaben, Daten exportieren

Wählen Sie Quell-DB aus

Wählen Sie Ziel: Flat File-Ziel

Wählen Sie einen Dateinamen aus

Wählen Sie Format - Getrennt aus

Wählen Sie eine Tabelle aus oder schreiben Sie eine Abfrage

Wählen Sie einen Spaltenbegrenzer aus 

Hinweis: Sie können ein Textqualifikationsmerkmal auswählen, das Ihre Textfelder wie Anführungszeichen begrenzt.

Wenn Sie ein Feld mit Kommas haben, verwenden Sie kein Komma als Trennzeichen, da es keine Kommas gibt. Sie können ein Trennzeichen für die Spalte auswählen, z. B. Vertical Bar: | anstelle von Komma oder Tabulatorzeichen. Schreiben Sie andernfalls eine Abfrage, die Ihren Kommas entgeht oder Ihr varchar-Feld begrenzt. 

Das zu verwendende Escape-Zeichen oder Text-Qualifikationsmerkmal hängt von Ihren Anforderungen ab.

1
live-love

Sie können das folgende Node.js-Modul verwenden, um es mit einer Brise zu tun:

https://www.npmjs.com/package/mssql-to-csv

0
adnan kamili

SSIS ist dafür ein sehr guter Weg. Dies kann dann mithilfe von SQL Server-Agentenaufträgen geplant werden. 

0
user44565