Я хочу перенести все данные из SourceTable в TargetTable, вставив или обновив соответствующим образом. Мне не нужно удалять записи из TargetTable, даже если их нет в SourceTable.
Это то, что я имею до сих пор. Является ли команда MERGE наиболее подходящим подходом для этого? Я посмотрел на некоторый пример, но не совсем уверен, как это сделать.
Мое текущее решение усекает всю таблицу, а затем вставляет данные. С тех пор я понял, что мне нужно сохранить значения PK для значений, которые существовали ранее в TargetTable. Как изменить это значение на INsert или обновить в зависимости от того, существует ли AssociatedRefId в столбце PublicRefId таблицы TargetTable?
-- Truncate lancrm01sql's Baseline Official table
TRUNCATE TABLE [TargetTable]
-- Populate table
INSERT INTO [TargetTable]
(PublicRefId
,FamilyName
,GivenName
)
SELECT
AssociatedRefId
, lastname
, firstname
FROM
#TempSourceTable