台灣最大程式設計社群網站
線上人數
672
 
會員總數:245215
討論主題:189089
歡迎您免費加入會員
討論區列表 >> MS SQL >> Bcp 匯入檔案第一列為table 欄位
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Bcp 匯入檔案第一列為table 欄位
價值 : 20 QP  點閱數:359 回應數:2

樓主

tabo
門外漢
0 2
26 1
發送站內信

我有一個csv檔要自動化匯入sql server
檔案的第一列是表頭. 請問bcp有辦法匯入時將第一列的表頭當做table的欄位名嗎(像匯入精靈那樣)


搜尋相關Tags的文章: [ Bcp ] ,
本篇文章發表於2019-03-23 22:17
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

tabo
檢舉此回應
不好意思 , 再進一步描述一下我的問題

我的CSV 檔的內容如下

大分類 中分類 201701 201702 201703 =>這個是CSV檔的欄位表頭

分類A 分類B 100 200 300 =>資料內容1

分類A 分類C 150 250 350 => 資料內容2



用bcp工具匯入時 , 我先create 一個temp table .
然後用 bcp + fmt 匯入. 上述3列就以資料列寫入Table

ex:

temp table

欄位名稱
col1 col2 col3 col4 col5

大分類 中分類 201701 201702 201703 =>資料列
分類A 分類B 100 200 300 =>資料列
類A 分類C 150 250 350 =>資料列


我想要請問 , bcp可以再匯入時.以我csv的欄位表頭當作table的欄位名嗎
ex;
temp table
欄位名稱
大分類 中分類 201701 201702 201703 =>我想要以此當作table的欄位名稱

分類A 分類B 100 200 300 =>資料列
類A 分類C 150 250 350 =>資料列
本篇文章回覆於2019-03-25 09:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

小發
檢舉此回應
好像沒有欸,BCP 或 Bulk Insert 都需要先有個實體表才能寫入資料;如果要達到的話,可能要拆多步驟進行
前置:可拆欄位及拆行的Function、開一個只有一個varchar(MAX)的單欄暫存表、bcp in/Bulk Insert語法或procedure、建立資料表的procedure
step1. bcp寫入資料到單欄暫存表
step2. 執行Function將寫入資料拆成資料表格式,選出Row1的欄位名稱
step3. 執行建表procedure建立實體資料表
step4. 執行BCP Procedure寫入新表

不確定是否有更好的方法,以上是一點個人想法。
本篇文章回覆於2019-05-27 13:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.