2012-04-26 240 views
0

我对SQL Server颇为新颖。 我有一个txt文件,像这样分隔值:将数据从txt文件导入到SQL-Server表的功能

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导入和更新的变化(该文件是改变每天)。我在想做一个功能来做,但我不知道它是否可能。

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

回答

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

Exaample 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 
+0

是否可以从txt文件做到这一点?没有把它转换成csv? – andoni90 2012-04-26 09:13:31

+0

@ koneX:好的。这只是一个例子。 – 2012-04-26 09:16:27

2

你可以使用SQL Server集成服务(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?

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

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

希望给你的想法。

相关问题