欢迎来到天天文库
浏览记录
ID:40490957
大小:26.29 KB
页数:7页
时间:2019-08-03
《SQL Server 批量插入数据的两种方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、SQLServer批量插入数据的两种方法 在SQLServer中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQLServer支持的两种批量数据插入方法:Bulk和表值参数(Table-ValuedParameters)。运行下面的脚本,建立测试数据库和表值参数。1.--Create DataBase 2.create database BulkTestDB; 3.go 4.use BulkTestDB; 5.go 6.--Create Tabl
2、e 7.Create table BulkTestTable( 8.Id int primary key, 9.UserName nvarchar(32), 10.Pwd varchar(16)) 11.go 12.--Create Table Valued 13.CREATE TYPE BulkUdt AS TABLE 14. (Id int, 15. UserName nvarchar(32), 16. Pwd varchar(16)) 下面我们使用最简单的Insert语句来插入100万条数据,代码如下:1.Stopwatc
3、h sw = new Stopwatch(); 2. 3.SqlConnection sqlConn = new SqlConnection( 4. ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);//连接数据库 5. 6.SqlCommand sqlComm = new SqlCommand(); 7.sqlComm.CommandText = string.Format("insert into BulkTestTable(Id,UserName,Pw
4、d)values(@p0,@p1,@p2)");//参数化SQL 8.sqlComm.Parameters.Add("@p0", SqlDbType.Int); 9.sqlComm.Parameters.Add("@p1", SqlDbType.NVarChar); 10.sqlComm.Parameters.Add("@p2", SqlDbType.VarChar); 11.sqlComm.CommandType = CommandType.Text; 1.sqlComm.Connection = sqlConn; 2.sqlConn.Open(
5、); 3.try 4.{ 5. //循环插入100万条数据,每次插入10万条,插入10次。 6. for (int multiply = 0; multiply < 10; multiply++) 7. { 8. for (int count = multiply * 100000; count < (multiply + 1) * 100000; count++) 9. { 10. 11. sqlComm.Parameters["@p0"].Value = count;
6、12. sqlComm.Parameters["@p1"].Value = string.Format("User-{0}", count * multiply); 13. sqlComm.Parameters["@p2"].Value = string.Format("Pwd-{0}", count * multiply); 14. sw.Start(); 15. sqlComm.ExecuteNonQuery(); 16. sw.Stop(
7、); 17. } 18. //每插入10万条数据后,显示此次插入所用时间 19. Console.WriteLine(string.Format("Elapsed Time is {0} Milliseconds", sw.ElapsedMilliseconds)); 20. } 21.} 22.catch (Exception ex) 23.{ 24. throw ex; 25.} 26.finally 27.{ 28. sqlConn.Close(); 29.} 30.
8、 31.Console.ReadLi
此文档下载收益归作者所有