bulk insert 多个文件
有如下bulk insert语句,一次只能操作一个数据文件file01.txt:
BULK INSERT DBname
FROM 'D:\datadir\file1.txt'
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR = '\n'
)
需求要求助的问题是 D:\datadir 目录下有多个文件file01.txt~file20.txt,难道需要操作20次吗?
是否有其它方法,或者可以指定目录导入的方法,我把所有文件都归到该目录下?
求指导~
insert
bulk
------解决方案--------------------写个存储过程循环,或者使用ssis循环该目录。
------解决方案--------------------
declare @i int --计数
declare @size int --计数范围
declare @s varchar(8000)
set @i=1
set @size=20
while @i<=@size
begin
set @s='bulk insert DBname from '+ '''D:\datadir\file'+@i+'.txt'' WITH ( FIELDTERMINATOR = '','', ROWTERMINATOR =''\n'')'
exec(@s)
set @i=@i+1
end
------解决方案--------------------方法1、用动态语句拼接执行,如2楼的方式,但是是否能执行我就没试过了。
方法2、借用cmd或者powershell,遍历这个文件夹下的文件,然后循环执行。
方法3、自己用.net或者其他语言写个程序,其实核心还是遍历并执行insert
------解决方案--------------------拼出一堆带换行的bcp语句,右键复制到cmd里,就会挨个跑了