2013-02-05 14 views
9

Ho un file di testo delimitato da virgole con la strutturaIgnorare alcune colonne quando si utilizza BULK INSERT

field1 field2 field3 field4 
1  2  3  4 

ho scritto il seguente script per ammassare inserire il file di testo, ma ho voluto lasciare fuori colonna 3

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

L'inserto ha funzionato bene, ma i risultati dell'inserto resi campo4 assomigliano a campo3, campo4, quindi il campo 3 è stato in realtà solo concatenato su field4. I file piatti con cui sto lavorando sono diversi concerti e non possono essere modificati facilmente. Esiste un modo per utilizzare l'inserimento di massa ma è necessario ignorare le colonne che non sono dichiarate nell'istruzione della tabella create?

risposta

4

non puoi ignorare un campo mentre si fa inserimento di massa, invece di farlo .. caricare tutti e 4 colonne e rilasciare l'Colum che non volete

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] 
7

Il modo più semplice è quello di creare una vista che ha solo le colonne di cui hai bisogno.

Quindi inserire di massa in quella vista.

Problemi correlati