求助批量提交,insert语句! 有几千条记录要insert到数据库,现在做成单条循环插入的,有点慢,想做成批量提交,应该能快点吧请各位批点! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 insert into 表名(字段名,N,.....)select * from 表名 把这些数据编写成一个XML的文档格式,然后把这个XML传到数据库中,用数据库的XML处理一次性把这些内容当做一个表的内容Insert到你的数据库的表中。如果是SqlServer的话可以参见:sp_xml_preparedocument,OPENXML和sp_xml_removedocument的用法。 可用insert into 和select into 如果是倒入数据,还可以用dts工具等 方法一:在查询管理器中,用insert into 表名()select 列名1,列名2...from 源表名方法二:用Data Application Block的Fill方法 注:后面的select 查询出来是多条记录,可同时插入多条,但后面查询出来的字段要合insert里的相同 不知道用SqlDataAdapter.InsertCommand可不可以,这个好像也能处理批量提交数据的。 要想批量提交,就要批量的传到数据库中,要想批量的传到数据库中就要想办法把数据组织起来再传到数据加,怎么组织呢,用XML的格式来处理是一种方法,同时数据库是支持XML的解析的。楼主可以考虑一下这个方法嘛。 当然用XML传入数据库用存储过程是来做是最合适的。另外也可以考虑用数据适配器的Update方法也是可以的。不过我不喜欢用这个东西。 楼上的兄弟,来看一下,用XLM方法怎么做啊!批量的数据还是动态产生的,这样可以吗? 当然可以了!你可以把你的数据用XmlDocument编写成一个XML字符串,然后传到存储过程里。比如如下的一个格式就行:<?xml version="1.0" encoding="gb2312"?><Root> <Details> <Row ID=1 Name='li' age='28' money='5000.00'/> <Row ID=2 Name="wang' age='23' money='6000.00'/> ... </Details></Root> 除了用XML方法,应该还有其它的批量提交方法吧 一次写上100条插入语句用回车隔开一起执行,不就行了 ====CSDN 小助手 V2.0 2005年10月16日发布====CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!拒绝日货。 如果是B/S结构只能是一条一条的Insert进去了。因为你无论用什么控件,到最后也是要产生Insert语句提交给数据库的,因为数据库只认Sql语句。 先循环插入到DateSet中,然后updata 用Insert语句最快!或者将全部Insert语句构成一个存储过程,运行后再删除该存储过程。 我也时常有大量插入资料的需求,有时一做就是30000笔资料,若一次大量插入资料库时会耗费很多时间和资源,而且会影响到其他资料库运行,因此我的思考是相反的,为了避免插入资料时造成资料库跑不动,我在插入资料时会使用timer或是排程(at),每3秒钟才insert 1或2笔资料,如此一来我在插入资料时就不会造成资料库的lag了,其他程序也可以正常运行。 关于Socket服务器接受客户端发来的多次数据 C#里实现winfrom excel的对比,在线等 被困二天 求救(ODP.NET ORA-01843 SOS) Extjs多选 如何得到一个继承窗体的父类名? 关于ComboBox控件,省份与城市相对应的使用 有没有人过微软的MCAD或MCSD??? 用 vc#.net 开发基于windows ce 的移动设备程序 求助关于网页发短信到手机上中文变乱码的问题 textbox的问题 请教:ue如何创建工具 做到调试和执行c#代码 急!!!无法连续拷贝文件
sp_xml_preparedocument,OPENXML和sp_xml_removedocument的用法。
如果是倒入数据,还可以用dts工具等
insert into 表名()
select 列名1,列名2...from 源表名方法二:用Data Application Block的Fill方法
另外也可以考虑用数据适配器的Update方法也是可以的。不过我不喜欢用这个东西。
批量的数据还是动态产生的,这样可以吗?
你可以把你的数据用XmlDocument编写成一个XML字符串,然后传到存储过程里。比如如下的一个格式就行:
<?xml version="1.0" encoding="gb2312"?>
<Root>
<Details>
<Row ID=1 Name='li' age='28' money='5000.00'/>
<Row ID=2 Name="wang' age='23' money='6000.00'/>
...
</Details>
</Root>
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
拒绝日货。
会耗费很多时间和资源,而且会影响到其他资料库运行,因此我的思考是相反的,为了
避免插入资料时造成资料库跑不动,我在插入资料时会使用timer或是排程(at),每3秒
钟才insert 1或2笔资料,如此一来我在插入资料时就不会造成资料库的lag了,其他程序
也可以正常运行。