[SQL SERVER][TSQL]利用BLUK INSERT讀取Txt檔案匯入Table

[SQL SERVER][TSQL]利用BLUK INSERT讀取Txt檔案匯入Table

網友問題,自己實作並記錄。

是否有方法可以用數char長度的方式import txt檔??

 

		declare @sql varchar(8000)
		declare @content varchar(8000)
		declare @qrysql varchar(8000)
		set @qrysql='select * from test1'
		--create target table
		create table test1
		(
		c1 varchar(100),
		c2 varchar(100),
		c3 varchar(100)
		)
		--create stage table
		create table test2(
		c1 varchar(4000) null                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
		)
		--load text file to stage table
		BULK INSERT test2 
		FROM 'e:\mydata.txt' 
		 
		--insert into target table
		select @content=c1  from test2
		set @sql='insert into test1 select '''+
		SUBSTRING(@content,1,5)+ ''','''SUBSTRING(@content,6,5)+''','''+SUBSTRING(@content,11,3)+''''
		
		exec(@sql)
		 
		--show result
		exec(@qrysql)

 

txt檔案內容

image

 

結果

image

 

不過像這樣的需求,自己還是會比較建議寫個小程式來處理比較好。

 

參考

BULK INSERT (Transact-SQL)