Условная BULK INSERT для файлов CSV с разным количеством столбцов в SQL Server

Я создал ФАЙЛ ФОРМАТА BCP (xml) для импорта файла CSV в таблицу SQL SERVER. Существует более 100 файлов CSV (представляющих веб-журналы IIS). Некоторые сайты собирают 5 столбцов данных, а некоторые сайты собирают 6 столбцов данных. Первые пять столбцов одинаковы.

Можно ли в любом случае сначала проверить количество столбцов в CSV-файле ПЕРЕД выполнением команды BULK INSERT? Таким образом, я могу выбрать файл правильного формата для использования с командой, не получая сообщения об ошибке с указанием столбцов не хватает.


person tresstylez    schedule 10.06.2013    source источник


Ответы (1)


Единственный способ сделать это — открыть файл чем-то другим (скрипт Powershell, VBS, C#/VB.net и т. д.) и проверить первую строку, вернув результат, чтобы указать, сколько столбцов он нашел. В SQL Server нет ничего, что могло бы сделать это за вас (кроме загрузки всего файла в виде таблицы с одним столбцом).

person RBarryYoung    schedule 10.06.2013
comment
Да, в конце концов мне пришлось сначала массировать каждый файл (чтобы установить ТЕРМИНАТОРЫ для каждого из столбцов), поэтому я смог подсчитать столбцы в то время. Спасибо! - person tresstylez; 11.06.2013