在C#应用程序中,将许多记录插入sql server的最佳方法是什么?

时间:2010-04-07 19:20:53

标签: c# sql

我需要从c#应用程序执行一个非常大的sql server插件。在20,000到50,000记录的范围内。

通过SQL Server执行插入的 最快 方式是什么?

我知道有几种选择,但我不知道哪种选择最快。

   insert into MyTable(column1, column2, ..., column*)
   select 'value','value',...,'value'
   union
   select 'value','value',...,'value'

OR

   insert into MyTable(column1, column2, ..., column*)
   exec('select ''value'',''value'',...,''value'''
        'select ''value'',''value'',...,''value''')

OR

   bulk insert from a data file

OR

   Any better way that you know of :)

2 个答案:

答案 0 :(得分:6)

从C#开始,您可以使用SqlBulkCopy,但对于整体原始速度,我希望您可以通过bcp获得更快,并且您可以真正调整SSIS。在这两种情况下,您都可以有效地使用外部可执行文件--bcp或dtexec。

答案 1 :(得分:4)

如果您打算使用C#进行批量复制,那么使用SqlBulkCopy类是最好的选择。我用它来传输15K行数据,然后快速完成。

HTH