1

我对 SQL Server 很陌生。我有一个 .txt 文件,其中的值分隔如下:

20120101;001;2;0;0;0;0;0;8
20120102;002;3;0;0;0;0;0;8
20120103;003;4;0;0;0;0;0;8
...

该文件位于服务器中,我需要每天在同一时间自动导入此文件,并更新更改(文件每天都在更改)。我正在考虑制作一个功能来做到这一点,但我不知道这是否可能。

任何帮助,将不胜感激。提前致谢。

4

2 回答 2

3
insert into your_table
  SELECT a.*  
  FROM OPENROWSET( BULK 'c:\input.csv', FORMATFILE = 'c:\Format.fmt') AS a;

示例Format.fmt

9.0
6
1       SQLCHAR     0     15   ";"      1     col1      SQL_Latin1_General_CP1_CI_AS
2       SQLCHAR     0     25   ";"      2     col2      SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR     0     6    ";"      3     col3      SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR     0     5    ";"      4     col4      SQL_Latin1_General_CP1_CI_AS
5       SQLCHAR     0     15   ";"      5     col5      SQL_Latin1_General_CP1_CI_AS
6       SQLCHAR     0     100  "\r\n"   6     col6      SQL_Latin1_General_CP1_CI_AS
于 2012-04-26T09:04:49.290 回答
2

您可以使用SQL Server Integration Services (SSIS)按计划导入平面文件。

这是一个循环遍历给定文件夹中所有相同格式的 CSV 文件并将它们加载到数据库中的示例。

处理完文件后,如何将文件移动到存档文件夹?

这是另一个例子:

Validate CSV file Data before import into SQL Server table in SSIS?

Following answer shows how to schedule an SSIS package to run from inside a SQL Server Agent job.

How do I create a step in my SQL Server Agent Job which will run my SSIS package?

Hope that gives you an idea.

于 2012-04-26T09:59:57.803 回答