我有很多 .txt 文件,我想将它们导入SQL Server表。
文件名如下:
hazem.20160922.txt
hazem2.20160921.txt
该表已存在,因此无需再次创建。这是一项日常活动,因此我需要将其自动化。我在网上阅读了很多文章而我无法做到。
答案 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`