Wie Sie zu erstellen .fmt-Datei, und exportieren Sie die Daten in mehrere Tabellen mixed-input-Datei
Bin, die versuchen, ein .fmt-Datei mithilfe des Dienstprogramms bcp. Ich war erfolgreich in der Lage, diese zu erstellen, bevor Sie damit (unter Verwendung der Tabelle, die Daten exportiert, die als Eingabe):
bcp cmsDatabase.dbo.Tabelle1 format nul -T -c -f Table1Format.fmt
9.0
3
1 SQLCHAR 0 12 "\t" 1 Col1_Table1 ""
2 SQLCHAR 0 100 "\t" 2 Col2_Table1 SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 0 "\t" 3 Col3_Table1 SQL_Latin1_General_CP1_CI_AS
Tabelle1 aus der es erstellt wurde:
Col1_Table1 int (Primärschlüssel)
Col2_Table1 nvarchar(50)
Col3_Table1 nvar
Nun bin ich vor einem Problem. Ich habe den Eingang .txt/.csv-Datei (delimited flat file) mit den Daten, die nicht importiert werden direkt in einer Tabelle, Sie gehen in viele Tabellen (UND eine geht direkt in Zeilen, andere Daten benötigt werden, um Eingang in die Spalten von Tabelle2), Beispiel-Input-Datei Daten:
"Col1_Table1x" "Col2_Table1x" "Col3_Table1x" "Col1_Table2x, Col1_Table2y, Col1_Table2z"
Update:
In der obigen Datei, Werte in:
Col1_Tablex -> Col1_Table1 column of Table1
Col2_Tablex -> Col2_Table1 column of Table1
Col3_Table1x -> Col3_Table1 column of Table1
Tabelle1:
Col1_Table1 Col2_Table1 Col3_Table1
-------------------------------------------
Col1_Table1x Col2_Table1x Col3_Table1x
Bis hier, kann ich es auf der Arbeit.
, Was ich versuche, herauszufinden:
"Col1_Table2, Col1_Table2, Col1_Table2, ....." -> Mehrere Datensätze in Tabelle2, Auffüllen Col_Table2 mit dem comma-seperated values, und
mit Col1_Table1 als foreign key.
ich.e Tabelle2 sollte
Col1_Table1 Col1_Table2
----------------------------------------------
Col1_Table1x Col1_Table2x
Col1_Table1x Col1_Table2y
Col1_Table1x Col1_Table2z
wo Col1_Table2 gehen muss als Zeilen in Tabelle2 (und ist durch Kommas getrennt), und Col1_Table1 ist ein Fremdschlüssel für die Tabelle2 so muss es kopiert werden über auch.
Ist es, eine Möglichkeit zu schaffen ein .fmt-Datei, die erlauben, dass diese Art des gemischt-Eingang kopiert werden?
Weitere details: Jedes mal, wenn ich brauche, zu laden, bis Sie die Tabellen aus dieser input-Datei, ich kann abschneiden, alle alten Daten und neu füllen. Jede der Spalten kann durch spezielle Zeichen wie <, " , & etc. so gibt es eine Möglichkeit, dass zu handhaben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der Umfang der Daten klein/Mittel dann können Sie einfach importieren Sie die Daten in eine staging-Tabelle und importieren Sie die beiden Tabellen in einer anderen Schritt.
Außerdem könnten Sie überspringen einige Spalten in der Datendatei durch die Verwendung von zwei unterschiedlichen format-Dateien und verwenden Sie zum einfügen in verschiedene Tabellen überspringen der Spalten aus anderen Tabellen.
http://msdn.microsoft.com/en-us/library/ms187908.aspx
Kommen, um spezielle Zeichen, die nur gute Möglichkeit, dies zu lösen, ist die Verwendung mehrerer Spalte Trennzeichen. Ich bin in der Musik-Industrie, also manchmal benutze ich 3 verschiedene Spalten-Trennzeichen für den import der Daten korrekt.