2016-03-28 3 views
1

バルクロードを行うこのコードはあります。うまく動作しますが、私は@BatchFileNameをそこに列として持っていたいと思います(各行に同じ値が入っています)。SQL Serverのバルクロード中にファイル名を挿入します。

バルクロード中にこれは可能ですか?または、後で別の関数で追加するにはどうすればよいですか?

おかげで、事前に

答えて

2

iは、ディレクトリ内のbulkinsertファイルを反復処理し、このスクリプトを使用します。

create table #x (name varchar(200)) 
DECLARE @query varchar (1000),@conta int ,@query2 varchar (1000),@NOME varchar(50) 
set @conta=1 
set @query ='master.dbo.xp_cmdshell "dir '+'C:\directoryname'+'*.csv' +' /b"' 
insert #x exec (@query) 
delete from #x where name is NULL 
select identity(int,1,1) as ID, name into #y from #x 
drop table #x 
WHILE @conta<221 --number of files 

BEGIN 
SELECT @NOME=name FROM #y WHERE [email protected] 
set @Query2 ='BULK INSERT [dbo].[tablename] FROM '+ '''C:\directoryname'[email protected]+''' 
    WITH (
FIELDTERMINATOR = '','',ROWTERMINATOR = ''0x0a'')' 
SELECT @query2 
exec (@Query2) 

set @[email protected]+1 

END 
drop table #y 
関連する問題