2013-10-11 24 views
0

我正在做的是使用csv的大容量插入插入到表中。我需要输入固定数量的列。忽略大容量插入语句末尾的列

代码:

BULK INSERT #TEMP FROM 'c:\temp.csv' 
WITH 
(
    FIELDTERMINATOR = ',' 
, ROWTERMINATOR = '\n' 
, CODEPAGE = 'RAW' 
,FIRSTROW =2 
) 

输入:

A,B,C,D,E 
A,B,C,D,E 

问题:

包含值E不被写入到表中的列,因为有没有 列来存储这些值。当我把这些值插入表中,最后一列是这个样子:

D,E 
D,E 

问:

有什么办法来防止E列插入到表中不使用的格式文件?由于存在一些权限问题,因此我无法使用OPENROWSET来获取这些值。

+0

我需要存储'D'的值,但是'D,E'的值正在存储。我需要避免这种情况。 – Aashray

+0

您正在使用临时表;你可以为e添加一列,然后在插入后删除它? – ps2goat

+0

这里有一个类似问题的答案:http://stackoverflow.com/questions/14711814/ignore-certain-columns-when-using-bulk-insert – ps2goat

回答

0

正如其他人所提到的,你在执行批量插入时不能忽略一个字段。如果您无法访问格式文件,请导入到临时表中,然后删除不需要的列。