在使用MSSQL的进程中,怎样快速插入大量数据?这里介绍一些实用的方法,希望对大家有帮助。
一、使用BULK INSERT命令
当我们需要把数据从另外一个表或文件插入到一个表时,可使用BULK INSERT命令完成。它是一种命令式复制,可以把上下文环境数据插入到一个数据表。代码示例以下:
BULK INSERT Table1
FROM ‘C:\DataFile.csv’
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ‘,’,
ROWTERMINATOR = ‘\n’
);
二、使用批量操作
批量操作指的是使用ExecuteNonQuery()方法,可以履行一组查询语句。它可以以一种更高效的方式插入大量数据,并避免单独的transaction来完成一个操作大范围的数据,比如100K行的记录的更新或插入。代码示例以下:
StringBuilder sqlString = new StringBuilder();
sqlString.Append(“INSERT INTO Table1 “);
sqlString.Append(“VALUES(‘A’,’1′,’2008⑴0⑴5′)”);
sqlString.Append(“INSERT INTO Table1 “);
sqlString.Append(“VALUES(‘B’,’2′,’2008⑴0⑴5)”);
SqlConnection sqlConnection = new SqlConnection(ConnectionString);
sqlConnection.Open();
SqlCommand sqlcommand = new SqlCommand(sqlString.ToString(), sqlConnection);
sqlcommand.ExecuteNonQuery();
三、使用SP_SSBULKCOPY
SP_SSBULKCOPY是一个专用的存储进程,可以用来将数据从表格格式文件(如txt等)或其它数据库插入到一个MSSQL表中。相比前两种方法,它具有更好的性能,能够快速插入大量数据,提高了插入效力。代码示例以下:
DECLARE @bcpcmd VARCHAR (1000);
SET @bcpcmd = ‘bcp TestDB.dbo.Table1 in C:\DataFile.csv -T -c -t, -S ServerName\InstanceName’;
EXEC master..sp_ssbulkcopy @bcpcmd;
以上就是介绍了MSSQL怎样使用Bulk Insert跟ExecuteNonQuery和SP_SSBULKCopy快速插入大量数据的三种方式,其中有些需要改变相关参数以保证数据正确插入,希望对大家有所帮助。
本文来源:https://www.yuntue.com/post/97708.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏