SQL BULK INSERT的替代方案

4
我需要将.csv文件中的数据导入到数据库表(MS SQL Server 2005)中。SQL BULK INSERT似乎是一个不错的选择,但问题在于我的DB服务器和WEB服务器不在同一台机器上。这个问题描述了相同的问题,但我无法控制我的DB服务器,并且不能在其上共享任何文件夹。
我需要一种以编程方式(使用C#)导入我的.csv文件的方法,有什么想法吗?
编辑:这是网站的一部分,用户可以使用.csv内容填充表格,并且这将定期发生,如果不是更频繁的话。
4个回答

5
你有几个选择:
  1. SSIS
  2. DTS
  3. 自定义应用程序
任何这些方法都应该能完成工作。如果只是临时性工作,最好使用你喜欢的语言编写一个临时应用程序来获取数据。如果需要更长久的解决方案,你可能需要考虑使用 SSIS 或 DTS,因为它们专为此类情况而设计。

2
尝试使用Rhino-ETL,它是一个用C#编写的开源ETL引擎,甚至可以使用BOO来编写简单的ETL脚本,因此您不需要一直进行编译。
代码可以在这里找到:https://github.com/hibernating-rhinos/rhino-etl 编写它的人:http://www.ayende.com/blog 该组列表中有一些关于它的讨论,我曾经添加了bulk insert功能以供boo脚本使用。 http://groups.google.com/group/rhino-tools-dev http://groups.google.com/group/rhino-tools-dev/browse_thread/thread/2ecc765c1872df19/d640cd259ed493f1 如果您下载了该代码,会发现有几个示例,请在Google群组清单中查找更多帮助。

1

我最终使用了CSV Reader。我在@Jon Skeet的一个回答中看到了它的参考,但现在找不到它了,无法提供链接。


0

您的数据集有多大?除非非常大,否则可以使用参数化插入语句。您可能希望先加载到临时表中,以确保数据完整性或提高性能。


数据集达到1万条记录。 - roman m

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接