使用BULK INSERT时忽略某些列(Ignore certain columns when us

2019-07-19 07:50发布

我与结构的逗号分隔的文本文件

field1   field2   field3   field4
1        2        3        4

我写了下面的脚本批量插入文本文件,但我想离开了第3列

create table test (field1 varchar(50),field2 varchar(50),field4 varchar(50))
go
bulk insert test
from 'c:\myFilePath'
with 
(fieldterminator=',',
rowterminator='\n'
)

插入工作得很好,但做插入的结果字段4模样字段3,字段4,所以场3实际上只是串联到字段4。 我正在使用的平面文件有几个演出,不能轻易修改。 有没有办法使用BULK INSERT但它忽略未在create table语句中声明的列的方式吗?

Answer 1:

您可以使用格式文件要做到这一点:

http://msdn.microsoft.com/en-gb/library/ms178129.aspx

http://msdn.microsoft.com/en-gb/library/ms179250.aspx

或者,如果你想有一个稍微cheekier的方式,只需要导入这一切事后删除一列。 ;)



Answer 2:

最简单的方法是创建一个具有只是你需要的列的视图。

然后批量插入到该视图。



Answer 3:

你不能忽略一个字段,而这样做批量插入,insted的这样做的..加载所有4列,并丢弃哪些你不想要的科拉姆

create table test (field1 varchar(50),field2 varchar(50), field3 varchar(50),field4 varchar(50))
go
bulk insert test
from 'c:\myFilePath'
with 
(fieldterminator=',',
rowterminator='\n'
)

ALTER TABLE test DROP column [field3]


文章来源: Ignore certain columns when using BULK INSERT