goodbytes
Goto Top

Export einer SQL-Abfrage in eine Datei

Hallo,
ich möchte auf unserem SQL-Server 2005 meine Abfrage jeden Tag automatisch laufen lassen. Ist ja auch soweit kein Problem; aber das Skript ist fertig bis auf eine winzige Kleinigkeit. Das Skript soll die Ausgabe gleich in eine csv-Datei umleiten.

Ist sicher ganz einfach machbar denke ich; ich weiß aber leider nicht wie.

Torsten

Content-Key: 96999

Url: https://administrator.de/contentid/96999

Printed on: April 24, 2024 at 19:04 o'clock

Member: Genios
Genios Sep 15, 2008, updated at Oct 18, 2012 at 16:36:15 (UTC)
Goto Top
Schau mal in diesem Artikel nach, hier wird der Query mittels Batch angestoßen und das Ergebnis in eine Textdatei geschrieben. Eine Ausgabe in eine *.csv Datei sollte nicht das Problem darstellen
Member: TuXHunt3R
TuXHunt3R Sep 15, 2008 at 19:33:20 (UTC)
Goto Top
Hallo TorstenB

Dafür ist SQL selber nicht das richtige, so wie ich das einschätzen kann.
Hier empfiehlt sich ein VBScript oder ein PowerShell-Script in Kombination mit der von dir erwähnten SQL-Abfrage.
Kannst du die Abfrage mal posten?
Mitglied: 59581
59581 Sep 16, 2008 at 07:13:29 (UTC)
Goto Top
Hallo,

.csv Datei ist auch ein .txt Datei,

die unterschied ist nur das .csv Datei enthält trennzeichen ";"

>SQLCMD -U username -P password -S server\instanz -d dbname -i c:\abfrage.sql -o c:\ausbage.csv -s ";"
Member: goodbytes
goodbytes Sep 16, 2008 at 08:55:58 (UTC)
Goto Top
Hallo,
ja, mittels sqlcmd funktioniert das sehr gut. Schöner wäre es natürlich direkt aus der SQL-Abfrage wenn es möglich ware. Dann könnte ich es direkt auf dem SQL-Server mittels SQL-Agent als Job laufen lassen.
Eine Ausführung per vbs wäre allerdings auch eine saubere Sache.
Hier ist mal die Beispielabfrage:

USE meinedatenbank
SELECT     Spalte1, Spalte2, Spalte3, [Spalte4], Spalte5, Spalte6, Spalte7, Spalte8, Spalte9
FROM         [Firma$Tabelle]
WHERE     (Spalte5 = 'GT1') AND ([Spalte3] = 2) AND (Spalte6 = 0) AND (Spalte7 = 2) AND (Spalte8 = '123456')  
ORDER BY Spalte9

Torsten
Mitglied: 59581
59581 Sep 16, 2008 at 17:22:46 (UTC)
Goto Top
ok,

du kannst die formatierung auch unter SELECT Abfrage eingeben

spalte1 + ";" + spalte2 + ";" + ...
Member: goodbytes
goodbytes Sep 16, 2008 at 19:53:41 (UTC)
Goto Top
Hallo Amadeus2008,
aha, dass man die Trennzeichenerzeugung eigentlich so einfach erzeugen kann dachte ich gar nicht. Vielen Dank für den Tipp!

Torsten