【问题标题】:Function to import data from a txt file to a SQL-Server table将数据从 txt 文件导入 SQL-Server 表的函数
【发布时间】:2012-05-06 23:54:08
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:
    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
    

    【讨论】:

    • 是否可以从 txt 文件中执行此操作?不将其转换为 csv?
    • @koneX:当然。这只是一个例子。
    【解决方案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?

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

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

    希望能给你一个想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      相关资源
      最近更新 更多