4

我正在寻找一个简单的解决方案(SQL 初学者)来允许将数据从我的 .csv 文件导入到我的 SQL DB。

我有一个第三方程序每 30 秒更新一次我的 .csv 文件,我想将该更新信息放入我的 SQL 数据库中。我尝试了导入和导出向导,但由于其他第三方程序正在使用 .csv 文件,它不起作用。

将信息获取到 SQL DB 不需要实时,它可以在打开保存的 sql 查询文件时检索所有信息。

谢谢!

4

2 回答 2

0

如果您在 CSV 文件的环境中工作,OPENROWSET 是最简单的。我已经看到很多关于什么操作系统的问题,以及安装 32 位或 64 位的 MS Office 版本。

但是做更多的工作,您将准备好创建一个小型 SSIS 包以将该 CSV 导入表中。以所需的时间间隔使用 SQL JOB 执行该 SSIS。以后如果您需要更复杂的插入/更新,您可以随时修改包。

于 2013-10-02T04:35:01.983 回答
0

这就是生产者消费者问题的情况,其中一个进程正在写入数据,而另一个进程正在读取数据。

无论你做什么,你都需要在这个文件上设置某种锁,该进程可以检查文件是否可用于读/写。如果导入/导出向导存在并发问题,那么其他进程可能也会出现。

另一种选择是始终创建要写入的新文件,并让阅读器进程始终从最新文件中读取并在处理后将其删除。

您还需要注意的另一件事是多次读取同一个文件。您需要一些方法来标记已经读取的记录,这样它们就不会被插入两次。

如果这需要完全自动化和无人值守的过程,则需要上述所有内容。

如果没有,您可以手动创建 CSV 文件的副本,然后使用导入/导出向导导入数据。

这是您可以查看的另一个资源,用于将 CSV 导入 SQL Server

http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-服务器/

于 2013-10-03T09:59:56.917 回答