
这种情况使用xml来进行批量插入
1aspnet页面上抓取数据,转换成xml字符串
2将这个字符串作为参数传给存储过程
3存储过程里,将这个xml读取成临时表
4整个临时表插入到目标数据表中,这个过程可以使用sql
server的事务;其实在这里用不用事务问题都不大了,因为存储过程出错,数据插不进去的,还会抛出异常到aspnet后台,让后台进行处理异常
您用游标或aspnet代码来循环,速度会比较慢的
解决方法:
添加事务处理,把5000条插入作为一个事务
dataBasebeginTransaction(); //手动设置开始事务
//数据插入 *** 作循环
dataBasesetTransactionSuccessful(); //设置事务处理成功,不设置会自动回滚不提交
dataBaseendTransaction(); //处理完成
将数据库「倒出来」:
sqlite3 filmdb "dump" > outputsql
利用输出的资料,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库
备份了):
sqlite3 filmdb < outputsql
在大量插入资料时,你可能会需要先打这个指令:
begin;
插入完资料后要记得打这个指令,资料才会写进数据库中:
commit;
这个在sqlserver里面不好做,要用到sql语言中的变量并且sql语音没有for不过有while,不过一般数据都不会这样批量输入,毕竟不是每条数据都之间都存在内在的联系。如果你真的想用for语句进行录入的话,你就用visual studio连接你的数据库用c#代码来完成这个活。
DECLARE @id INT,@username NVARCHAR(50),@Pwd NVARCHAR(50)
SET @id=0
SET @username ='kk'
SET @Pwd='12345'
WHILE @i<10000 --10000为你要执行插入的次数
BEGIN
INSERT INTO xx ( id, username,Pwd ) --xx为表名
VALUES ( @id, @username,@Pwd )
SET @i=@i+1
END
SqlBulkCopy是个不错的选择,直接由DataTable可以导入到数据库,但要注意(1)列名与目标表一致(2)数据类型一致(3)空值容错处理,参考代码:///<summary///将<see cref="DataTable"/
的数据批量插入到数据库中。///</summary///<param name="dataTable"
要批量插入的
<see cref="DataTable"/。
</param///<param name="batchSize"
每批次写入的数据量。
</parampublicboolInsertBatchDataTable(DataTable dataTable,
stringtableName,
intbatchSize =10000){using(SqlConnection connection =newSqlConnection(myConnectionString)){try{connectionOpen();//给表名加上前后导符using(varbulk =newSqlBulkCopy(connection, SqlBulkCopyOptionsKeepIdentity,
null){DestinationTableName=tableName,
BatchSize=batchSize}){//循环所有列,为bulk添加映射//dataTableEachColumn(c = bulkColumnMappingsAdd(cColumnName, cColumnName), c = !cAutoIncrement);foreach(DataColumn dcindataTableColumns){bulkColumnMappingsAdd(dcColumnName, dcColumnName);}bulkWriteToServer(dataTable);
bulkClose();}returntrue;}catch(Exception exp){returnfalse;}finally{connectionClose();}}}
如果是数据量非常大,超过10W以上的数据,可以考虑生成dtsx文件,然后由C#代码直接调用,效率还是不错的。
以上就是关于如何用SQL语句将数据批量插入数据库全部的内容,包括:如何用SQL语句将数据批量插入数据库、数据库如何批量插入数据、如何在SQLserver中利用循环语句插入大量的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)