2015-03-12 2 views
0

Я очень новая для MS SQL, и я столкнулся с этой проблемой: Cannot bulk load. The file "c:\data.txt" does not existMS SQL Массовая вставка из локальной машины

Я пытаюсь дать Сослуживцам пользовательский запрос с переменным входом (они будут использовать разные input.txt ежедневно). Я понимаю, что для Bulk Insert для работы входной файл должен быть на сервере.

Там, кажется, несколько решений: MS SQL Server - Bulk Insert Across a Network

Что бы быть лучшим способом, чтобы загрузить локальный файл progmatically?

+0

есть общий сетевой ресурс, который они могут использовать? то есть \\ server \ allusers \ data.txt, к которому имеют доступ все вызовы этой массовой копии? –

+0

Большинство наших сотрудников используют сервер только через интерфейс доступа MS Access, и у нас установлены FTP-соединения. – PoorBob

+0

Я создаю папку, с которой мы все можем поделиться и получить доступ изначально. У вас была идея чего-то подобного? – PoorBob

ответ

0

Вот мой стандартный способ обработки:

  1. создать локальную временную таблицу, соответствующей структуре вашего входного файла
  2. в вашем любимом процедурном языке программирования, написать программу для чтения файла и каждой строке, вставьте запись в таблицу temp. Эта программа выполняет базовую проверку (имеет ли строка правильное количество значений? - значения правильного типа данных?). Напиши все исключения в файл исключения для последующего просмотра.
  3. в таблице temp, выполните более тщательную проверку (например, имеет ли «VendorName» соответствующая запись в таблице «Поставщик»). Имейте поле «ErrorText» в вашей таблице темп, чтобы сохранить ошибки, найденные в каждой строке.
  4. выполнить вставку в вашу целевую таблицу из временной таблицы для любых записей с нулем «ErrorText» (или, требуют от пользователя, чтобы очистить свои данные, прежде чем любой из его Вставляется)
+0

Это выглядит многообещающе. спасибо – PoorBob

Смежные вопросы