自动将许多.txt文件导入sql server表

时间:2016-09-22 13:39:58

标签: sql-server database sql-server-2008 sql-server-2008-r2

我有很多 .txt 文件,我想将它们导入SQL Server表。

文件名如下:

hazem.20160922.txt

hazem2.20160921.txt

该表已存在,因此无需再次创建。这是一项日常活动,因此我需要将其自动化。我在网上阅读了很多文章而我无法做到。

2 个答案:

答案 0 :(得分:0)

由于您说这是一个应该每天都要进行的自动过程,您可以创建一个SSIS(ETL)作业来执行此操作,并且您可以安排作业,使其每天运行。

以下是link,它将清楚地解释如何将ETL包创建为平面文件源和数据库目标。

这个link将帮助您在SQL Server代理中安排作业的分步过程。

您可以在源中选择文件夹路径而不是文件名,以便ETL作业每天将文件夹中的所有文件移动到目标表。

答案 1 :(得分:-1)

在游标中使用foreach循环

 declare c1 cursor for SELECT WHICHPATH,WHICHFILE FROM ALLFILENAMES where WHICHFILE like '%.txt%'
    open c1
    fetch next from c1 into @path,@filename
    While @@fetch_status <> -1
      begin
      --bulk insert won`enter code here`'t take a variable name, so make a sql and execute it instead:
       set @sql = 'BULK INSERT Temp FROM ''' + @path + @filename + ''' '
           + '     WITH ( 
                   FIELDTERMINATOR = '','', 
                   ROWTERMINATOR = ''\n'', 
                   FIRSTROW = 2 
                ) '
print @sql
exec (@sql)

  fetch next from c1 into @path,@filename
  end
close c1
deallocate c1`enter code here`