如何用SQL语句将数据批量插入数据库

如何用SQL语句将数据批量插入数据库,第1张

这种情况使用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中利用循环语句插入大量的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10187234.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存