SQL BULK INSERT的替代品

时间:2009-02-23 21:17:00

标签: c# sql-server-2005 .net-2.0

我需要将数据表单.csv文件导入数据库表(MS SQL Server 2005)。 SQL BULK INSERT似乎是一个不错的选择,但问题是我的数据库服务器与我的WEB服务器不在同一个盒子上。 This question描述了同样的问题,但我无法控制我的数据库服务器,也无法共享任何文件夹。

我需要一种方法来以编程方式导入我的.csv(C#),任何想法?

编辑:这是网站的一部分,用户可以使用.csv内容填充表格,这种情况会每周发生一次,如果不是更频繁的话

4 个答案:

答案 0 :(得分:5)

您有几种选择:

  1. SSIS
  2. DTS
  3. 自定义应用
  4. 任何这些方法都应该完成工作。如果它只是临时工作,最好用您喜欢的语言编写一次性应用程序,只是为了获取数据。如果它需要是一个更长寿的解决方案,您可能需要查看SSIS或DTS,因为它们是为这种情况。

答案 1 :(得分:2)

尝试Rhino-ETL,它是一个用C#编写的开源ETL引擎,它甚至可以将BOO用于简单的ETL脚本,因此您无需一直编译它。

代码可以在这里找到: https://github.com/hibernating-rhinos/rhino-etl

写这篇文章的人: http://www.ayende.com/blog

小组列表有一些关于它的讨论,我实际上刚刚为boo脚本添加了批量插入。 http://groups.google.com/group/rhino-tools-dev http://groups.google.com/group/rhino-tools-dev/browse_thread/thread/2ecc765c1872df19/d640cd259ed493f1

如果您下载代码有几个示例,如果您需要更多帮助,请查看Google群组列表。

答案 2 :(得分:1)

我最终使用了CSV Reader。我在@Jon Skeet的一个答案中看到了对它的引用,再也找不到将它链接到它上面

答案 3 :(得分:0)

您的数据集有多大?除非它们非常大,否则您可以使用参数化插入语句。出于安心或性能原因,您可能需要先加载到临时表。