我有一个逗号分隔的文本文件,其结构为
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'
)
插入工作正常,但插入的结果使field4看起来像 field3,field4,所以字段3实际上只是连接到field4上。我正在使用的平面文件是几个演出,不能轻易修改。有没有办法使用批量插入但是忽略了未在create table语句中声明的列?
答案 0 :(得分:10)
最简单的方法是创建一个只包含所需列的视图。
然后批量插入该视图。
答案 1 :(得分:8)
您可以使用格式文件执行此操作:
http://msdn.microsoft.com/en-gb/library/ms178129.aspx
http://msdn.microsoft.com/en-gb/library/ms179250.aspx
或者如果你想要一种略显笨拙的方式,只需将其全部导入然后删除一列。 ;)
答案 2 :(得分:4)
在进行批量插入时你不能忽略一个字段,而不是这样做。加载所有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]