Я хочу импортировать файл csv в таблицу базы данных sql server 2008 R2 с помощью bcp с помощью такой команды:
bcp Database..TableName in TableName.csv -n -T -E -S localhost
Моя проблема: таблица содержит одну строку, которая также находится в файле csv (строка по умолчанию вставляется при создании базы данных).
Могу я как-то указать bcp игнорировать эту строку? Я пробовал -m для максимального количества ошибок, но bcp все равно прерывается, когда попадает в уже существующую запись (первичный ключ).
Я не могу просто удалить эту запись, так как она содержит зависящую от установки информацию, которая мне понадобится позже.
bcp не имеет сложной обработки ошибок для подобных ситуаций.
Я думаю, что ваши альтернативы:
Удалите одну повторяющуюся строку из вашего csv.
Напишите пакет DTS / SSIS, который обеспечит более сложную обработку ошибок.
bcp во временную таблицу и используйте t-sql для вставки из временного в действующее, используя левое соединение для проверки существования строки. Что-то вроде:
insert into TableName
(column1, column2, ...)
select t1.column1, t1.column2, ...
from TempTableName t1
left join TableName t2
on t1.primarykey = t2.primarykey
where t2.primarykey is null /* row does not already exist */