SQL Server: импорт из Excel, нужны только новые записи - PullRequest
1 голос
/ 14 января 2010

Задача состоит в том, чтобы SQL Server прочитал электронную таблицу Excel и импортировал только новые записи в таблицу. Сущность называется Поставщик .

Рассмотрим электронную таблицу Excel следующим образом:

alt text

Его целевая таблица выглядит так:

alt text

Задача:

  • с использованием набора инструментов 2008 Express
  • импорт в существующую таблицу в SQL Sever 2000
  • существующие данные в таблице! Удостоверение с приращением - PK. Это используется как FK в другой таблице со ссылками.
  • импортировать только новые строки из электронной таблицы!
  • игнорировать строки, которых нет в электронной таблице

Вопрос: Как я могу использовать набор инструментов SQL 2008 (вероятно, мастер импорта и экспорта) для достижения этой цели? Я подозреваю, что мне нужно «Написать запрос, чтобы указать данные для передачи».

Проблема в том, что я не могу найти запрос, поскольку инструмент будет генерировать точные корректировки.

alt text

Ответы [ 2 ]

3 голосов
/ 14 января 2010

Вероятно, я бы сделал массовую загрузку данных Excel в отдельную промежуточную таблицу в базе данных, а затем запустил INSERT в основной таблице, чтобы скопировать несуществующие записи.

, например

INSERT MyRealTable (ID, FirstName, LastName,.....)
SELECT ID, FirstName, LastName,.....
FROM StagingTable s
    LEFT JOIN MyRealTable r ON s.ID = r.ID
WHERE r.ID IS NULL

Затем бросьте промежуточный стол, когда закончите.

0 голосов
/ 15 марта 2010

Вы можете запустить некоторые обновления в этой таблице стадий перед загрузкой, чтобы очистить их, если потребуется, также. UPDATE SET NAME = RTROM (LTRIM (Имя)) FROM YOUR.STAGE.TABLE, например

...