我正在运行带有sqlcmd的SQL文件,它将许多行插入到MS SQL服务器(2008 R2)中,执行BULK INSERT将是最佳的,但SQL服务器可能无法访问数据文件。
MS SQL Server 2008 R2上还有哪些其他方法或选项可以快速插入?
答案 0 :(得分:1)
最后编写了一个使用System.Data.SqlClient.SqlBulkCopy的自定义C#应用程序。同时将包含数据的SQL文件替换为System.Data.DataTable.WriteXml
生成的XML文件,稍后可以使用ReadXml
导入这些文件,并直接与SqlBulkCopy
一起使用。
此解决方案比使用普通INSERT
快约10倍,比使用每行1000行的插入快50倍。 (为什么每个语句插入多行值比插入语句慢得多,每行一行对我来说都是个谜。)
答案 1 :(得分:1)
您也可以使用bcp实用程序。我发现它更快更好比BULK INSERT语句更容易使用。唯一需要注意的是,您可能需要在服务器本身上运行它。将您的文件放在服务器可访问的共享目录中。不确定你是否真的需要这样做。