作者tomex (Tomex Ou)
看板C_Sharp
标题Re: [问题] datatable一次写入资料库
时间Sat Mar 24 00:55:52 2007
※ 引述《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
1F:→ tomex:以上我没有实测过,只是读了很多英文资料而己,仅供参考 03/24 01:06
2F:推 blackbing:很棒的感想,推~ 03/24 01:47