Игнорировать определенные столбцы при использовании 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 похожим поле3,поле4, поэтому поле 3 На самом деле, прикрепленного поле4. Плоские файлы, с которыми я работаю несколько гигов и не могут быть легко изменены. Есть ли способ использовать bulk insert, но игнорировать его столбцы, которые не объявлены в инструкции create table?
3 ответов
для этого можно использовать файл формата:
http://msdn.microsoft.com/en-gb/library/ms178129.aspx
http://msdn.microsoft.com/en-gb/library/ms179250.aspx
или, если вы хотите немного нахальный способ, просто импортируйте все это и поместите столбец после этого. ;)
самый простой способ-создать представление с требуемыми столбцами.
затем массовая вставка в это представление.
вы не можете игнорировать поле при выполнении bulk insert, вместо этого .. Загрузите все 4 столбца и отбросьте colum, который вы не хотите
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]