作者blackbing (blackbing)
看板C_Sharp
标题Re: [问题] datatable一次写入资料库
时间Wed Mar 28 00:03:22 2007
※ 引述《diamondking (天剑流星)》之铭言:
: ※ 引述《tomex (Tomex Ou)》之铭言:
: : 要一次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次送完。
想问各位大大喔,
那如果今天我的SQL语法是利用sqlCommand来建立SQL语法,
并且利用sqlCommand1.Parameters.AddWithValue来存入新增资料
然後执行sqlCommand1.ExecuteNonQuery();
我想改成批量新增但是因为我要存入的值是用参数的形式存的
我应该怎麽改比较适当呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.127.22.18