Re: [問題] datatable一次寫入資料庫
※ 引述《tomex (Tomex Ou)》之銘言:
: ※ 引述《qweqweqweqwe (啪)》之銘言:
: : 請問有這種方法嗎
: : 現在我有一個datatable
: : 能一次把全部都insert進sqlserver嗎
: : 還是只能一個一個row用迴圈慢慢的放進去?
: 要一次insert很多筆,前陣子我也研究過這方面
: 首先,每個insert語法串起來,用「;」隔開是ok的
: 但好像寫法上雜了一點,而且sqlserver都有總字串大小的限制
: 因此我在sql語法上查到sql server有支援一個"Bulk Insert"的語法
: 但這個語法必須具有admin身份才能執行,而且吃的資料來源是文字檔,
: 也綁著sqlserver,不靈活。
: 我也發現DataAdapter中有支援BatchUpdate的語法
: 但它看起來是少送給server n次的insert指令
: 其實在sql server上,它本質上還是用分號隔開的sql的效能相同
: 還不如乾脆分號串起來一次送 (if總字量不過很大的話)
: 微軟真正建議要大量insert的話,是透過dts或bcp等外掛程式
: 其中網友認為bcp程式是效能最好的。
: 綜合以上,假如你insert的筆數在千筆以下,乾脆分號串起來比較快
: 萬筆以上的話,就用bcp較好。
: 我研究過這些方式都不夠讓我覺得靈活及輕巧
: 所以還是先等等,等微軟做出更好的東西囉!
我的看法也差不多…
當一定要用程式做即時的大批insert時,
用分號串起來送應該是唯一的方法,
另外如果筆數真的太多,建議可以用迴圈,
串100筆insert送一次,並commit一次。
例如1000筆資料,就是分10次送完。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.158.121
討論串 (同標題文章)
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章