将数据从txt文件导入SQL-Server表的功能

时间:2012-04-26 08:57:09

标签: sql sql-server function import text-files

我对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
...

此文件位于服务器中,我需要在autommaticaly的同一时间每天导入此文件,并更新更改(文件每天都在更改)。我正在考虑做一个功能,但我不知道它是否可能。

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

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

How do I move files to an archive folder after the files have been processed?

这是另一个例子:

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

以下答案显示了如何安排从SQL Server代理作业内部运行SSIS包。

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

希望能给你一个想法。