正試圖使用bcp實用程序設置.fmt文件。我已經能夠成功從而之前創建這個(使用該數據被輸出到輸入表):如何創建.fmt文件,並將數據從混合輸入文件導出到多個表中
BCP cmsDatabase.dbo.Table1格式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
表1從它被創造: Col1_Table1 INT(主鍵) Col2_Table1爲nvarchar(50) Col3_Table1 NVAR
現在我面臨的一個問題。我有不會被直接導入到一個表中的數據輸入的.txt/.csv文件(分隔的平面文件),它進入許多表(AND,一個直接進入行,其他的數據需要輸入到表2列),示例輸入文件的數據:
"Col1_Table1x" "Col2_Table1x" "Col3_Table1x" "Col1_Table2x, Col1_Table2y, Col1_Table2z"
更新: 在上述文件中,值必須進入:
Col1_Tablex -> Col1_Table1 column of Table1
Col2_Tablex -> Col2_Table1 column of Table1
Col3_Table1x -> Col3_Table1 column of Table1
表1:
Col1_Table1 Col2_Table1 Col3_Table1
-------------------------------------------
Col1_Table1x Col2_Table1x Col3_Table1x
到這裏,我可以讓它工作。
我試圖弄清楚:
「Col1_Table2,Col1_Table2,Col1_Table2,.....」 - >多個記錄放置在表2,用逗號分隔值填充Col_Table2 ,以及Col1_Table1作爲外鍵的 。
即表2應該有
Col1_Table1 Col1_Table2
----------------------------------------------
Col1_Table1x Col1_Table2x
Col1_Table1x Col1_Table2y
Col1_Table1x Col1_Table2z
其中Col1_Table2需要去爲行成表2(並且是逗號分隔),並Col1_Table1是表2的外鍵,因此需要被複制了。
有沒有辦法創建一個.fmt文件,允許這種混合輸入被複制過來?
其他細節:每次我需要從這個輸入文件加載了表,我可以截斷所有舊數據並重新填充。任何列可以有特殊字符,如<,「,&等,所以有辦法處理呢?
謝謝你的鏈接。我喜歡將數據放入用於導入其他兩個實際表的臨時表中。我將只提供一個輸入文件,所以我主要關心的是,是否有辦法將「Col1_Table2,Col1_Table2,...」中的所有數據分別放入不同的行/另一個表中?我也可以創建兩個格式文件,一個是問題中提到的,另一個是基於另一個表格。是否仍然有辦法知道哪些數據需要放入哪些表中? – 2011-05-13 17:59:04
>>是否還有辦法知道哪些數據需要進入哪些表?你需要確定這些信息,我們不能以編程方式進行。 – 2011-05-13 18:51:40
我已經編輯了我的問題一點點文件輸入是相同的,table2行進來逗號分隔和其他是tab/quotation分開。 – 2011-05-13 21:01:58