MSSQL如何快速插入大量数据(mssql 插入大数据)
在使用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-10-15′)”);
sqlString.Append(“INSERT INTO Table1 “);
sqlString.Append(“VALUES(‘B’,’2′,’2008-10-15)”);
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快速插入大量数据的三种方式,其中有些需要改变相关参数以保证数据正确插入,希望对大家有所帮助。