2016-07-05 23 views
0

Ich habe viele Dateien, die in .txt mit einer Batch-Datei extrahiert werden. Aber sie haben keine Header. Ich habe gelesen, dass eine mögliche Lösung aus here, die zu einem .txt mit den Headern der exportierten Zeilen hinzuzufügen ist.SQL Server: Header nach Fledermaus kopieren, um Daten zu extrahieren

mit diesem:

echo. >> titles.txt 
type data.txt >> titles.txt 

Dieses viel Zeit in Anspruch nimmt und ist nicht effizient, da sie die große Datei in die Datei mit dem Text hinzufügt.

Eine andere mögliche Lösung besteht darin, die hardcoded Titel der SQL-Abfrage hinzuzufügen, aber dies wird den Typ der Spalten ändern (ist sie numerisch, werden sie in varchar geändert).

Gibt es eine Möglichkeit, in die erste Zeile der Daten TXT die Header einzufügen und nicht umgekehrt?

+0

Bitte erklären Sie mir, wie das Hinzufügen der SQL-Abfrage die Spaltenüberschriften den Spaltentyp ändert? Vielen Dank. – tale852150

+0

@ tale852150, wie ich sagte "Sind sie numerisch, werden sie in varchar geändert" – GabyLP

Antwort

0

Ich könnte mich irren, aber soweit ich informiert bin (und soweit ich aus früheren Versuchen weiß, wie beschrieben): Nein, das ist nicht möglich! Die genannten Tasks wirken sequentiell auf die Datei. Sie können entweder eine Datei zum Lesen, Schreiben oder Anhängen öffnen. Wenn Sie die Datei titles.txt zum Schreiben öffnen, wird sie überschrieben - und damit leer. Wenn Sie es zum Anhängen öffnen, kann es nur an das Ende der Datei angehängt werden - so dass Sie die Daten nur nach dem Header schreiben können ... die einzige Möglichkeit, wie es funktionieren könnte - aber die ist ziemlich eklig - ist, den Titel anzufügen das Ende der Datei und während der späteren Verarbeitung (zB xls oder was auch immer) Die Zeilen abgleichen und die letzte an den Anfang legen. Aber wie gesagt: böse und nicht wirklich der Weg zu gehen.

0

Wenn die Anzahl der zu verarbeitenden Dateien ein größeres Problem darstellt als jede einzelne Dateigröße, kann der Wechsel von bcp zu sqlcmd hilfreich sein.