使用 BULK INSERT 时忽略某些列

新手上路,请多包涵

我有一个逗号分隔的文本文件,其结构

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 语句中声明的列?

原文由 wootscootinboogie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 727
2 个回答

最简单的方法是创建一个只包含您需要的列的视图。

然后批量插入该视图。

例子:

 create table people (name varchar(20) not null, dob date null, sex char(1) null)

--If you are importing only name from list of names in names.txt

create view vwNames as
select name from people

bulk insert 'names.txt'

原文由 Charles Okwuagwu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进