Announcement

Collapse
No announcement yet.

Ergebnistabelle in eine CSV Datei exportieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ergebnistabelle in eine CSV Datei exportieren

    Hallo.

    Ich wollte mal fragen, was der einfachste Weg ist, um eine Ergebnistabelle in einer CSV Datei über SQL zu speichern.

    Die Methode sollte mit MS SQL 2000 und neuer funktionieren.
    Auf die CSV Datei muss ich später nicht wieder zurückgreifen können.

    Ich brauche dies für ein Programm, das eine SQL Abfrage ausführen soll und das Ergebnis als CSV Datei für den Benutzer ablegen soll.

    Manuell über das Programm eine CSV Datei zu erzeugen geht nicht, da die Aktion auch über einen SQL Job ausgeführt werden soll (also z.B. jeden Tag einmal).


    Edit: Ich hab es jetzt mit dem Excel Format über OPENDATASOURCE bzw. OPENROWSET hinbekommen, aber leider nicht für ein normalen CSV Format. Kann man hier vielleicht auch nach CSV hierüber exportieren?
    Zuletzt editiert von Rya; 22.01.2008, 12:21.

  • #2
    Hallo,

    am einfachsten wird der Weg über bcp.exe mit den entsprechend konfigurierten Formatoptionen sein. Das folgende Beispiel demonstriert dies:
    [highlight=SQL]
    USE tempdb
    GO

    CREATE TABLE dbo.CsvExportDemo
    (
    id INT NOT NULL IDENTITY PRIMARY KEY,
    wert VARCHAR(9) NOT NULL DEFAULT 'Test',
    datum DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
    )
    GO
    INSERT INTO dbo.CsvExportDemo DEFAULT VALUES;
    INSERT INTO dbo.CsvExportDemo DEFAULT VALUES;
    INSERT INTO dbo.CsvExportDemo DEFAULT VALUES;
    GO

    -- CSV-Datei mit dem Semikolon als Spaltentrennzeichen erzeugen
    DECLARE @sql VARCHAR(4000)
    SELECT @sql = 'bcp "SELECT * FROM tempdb.dbo.CsvExportDemo" queryout C:\Temp\CsvExport.csv -c -t; -T -S'+ @@servername
    EXEC master..xp_cmdshell @sql
    GO
    [/highlight]
    Zuletzt editiert von Andreas Kosch; 24.01.2008, 08:00.

    Comment


    • #3
      Danke! :-)

      Funktioniert und nur 3 Zeilen (wenn ich das GO weglasse), genau das was ich gesucht habe.

      Comment

      Working...
      X