Я делаю довольно прямой импорт файла .csv, предоставленного поставщиком, используя следующую команду (я немного сократил ее):
Вставить в... из OPENROWSET (Bulk 'CSVFileName', FORMATFILE = 'XMLFormatFileName', FIRSTROW = 2, MAXERRORS = 0) AS BulkLoadFile
Формат файла CSV выглядит следующим образом (вам может потребоваться щелкнуть, чтобы увидеть изображение, поскольку я новичок в StackOverflow и пока не могу напрямую публиковать изображения):
http://i.stack.imgur.com/qZMwV.jpg
Моя проблема - ПОСЛЕДНЯЯ СТРОКА со счетчиком... Это приводит к сбою импорта!
FYI >>> Да, я знаю, что вы можете использовать "SET NOCOUNT ON;" но я не генерирую этот файл, так что это не вариант.
Прямо сейчас я открываю файл и удаляю последнюю строку, а затем повторно сохраняю перед импортом. (примечание: я также удаляю верхние 2 строки, показанные зеленым цветом, поскольку я уже в файле, но две первые строки не являются проблемой, поскольку я могу пропустить эти строки, используя переключатель FIRSTROW = 4).
Итак, мои вопросы:
Есть ли способ ПРОПУСТИТЬ ПОСЛЕДНЮЮ РЯДКУ?
OR
Есть ли способ получить количество строк и, возможно, использовать переключатель LAST ROW? т.е. ПОСЛЕДНЯЯ СТРОКА = Счетчик(*) из myCSVfile
OR
Поскольку он всегда начинается как «Всего:», нужно ли в любом случае добавить предложение WHERE? то есть значение WHERE в первом столбце не похоже на «Всего:%»
OR
Это то, с чем SSIS справится лучше? Если это так, я могу перенести эту процедуру импорта в SSIS.
Заранее спасибо... Я с нетерпением жду возможности по-настоящему автоматизировать это и не открывать этот файл каждый раз, когда мы его импортируем (несколько раз в день).
D3Y