Re: [問題] datatable一次寫入資料庫

看板C_Sharp (C#)作者 (Tomex Ou)時間18年前 (2007/03/24 00:55), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/5 (看更多)
※ 引述《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較好。 我研究過這些方式都不夠讓我覺得靈活及輕巧 所以還是先等等,等微軟做出更好的東西囉! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.49.178

03/24 01:06, , 1F
以上我沒有實測過,只是讀了很多英文資料而己,僅供參考
03/24 01:06, 1F

03/24 01:47, , 2F
很棒的感想,推~
03/24 01:47, 2F
文章代碼(AID): #1610QTln (C_Sharp)
文章代碼(AID): #1610QTln (C_Sharp)