SQL Server 2008 - вставить / обновить в главной таблице из промежуточной таблицы - PullRequest
1 голос
/ 21 августа 2011

После того, как данные импортированы в промежуточную таблицу через Bulk Insert, мне нужно сделать два шага:

  1. Преобразования
  2. Вставка / обновление в главной таблице

Являются ли СОЕДИНЕНИЯ лучшим инструментом ИЛИ есть что-то более быстрое / более эффективное для выполнения этих задач?

1 Ответ

2 голосов
/ 21 августа 2011

Я бы, наверное, сделал что-то вроде этого:

  • сделать ваши преобразования в этой промежуточной таблице (добавьте дополнительные столбцы при необходимости и т. Д.)
  • сделайте INSERT / UPDATE в таблицу фактических данных, используя команду SQL Server 2008 MERGE , которая идеально подходит именно для этого - обновите некоторые существующие строки, вставьте несколько новых строк (и, возможно, удалите некоторые старые «осиротевшие» ряды). Это одна команда, которая может обрабатывать практически все сценарии вставки, обновления, удаления за один вызов

Смотрите несколько замечательных статей о том, как использовать команду MERGE:

...