У меня проблема с MERGE Statement.Я сравниваю 2 таблицы.КОГДА ОБНОВЛЕНО ОБНОВЛЕНИЕ работает как талисман, но есть проблема с предложением КОГДА НЕ СООТВЕТСТВОВАТЬ, ЧЕМ ВСТАВИТЬ.Я хочу вставить строки в таблицу daSRC (исходную), но мне нужно иметь тот же da_DocId, что и в исходной таблице.
Это упрощенный запрос.
MERGE DocAnalytical daSRC
USING (
select
da_DaId, da_DocId, da_DelId,
FROM DocAnalytical dad
JOIN DocElems del on dad.da_DelID=del.Del_ID
) as dest
ON dest.da_DaId=daSRC.da_DaId --i know it's identity but normal its more complex clause
WHEN MATCHED THEN
UPDATE SET
da_DocId=dadSRC.da_DocId, da_DelId=dadSRC.da_DelId
WHEN NOT MATCHED THEN
INSERT (da_DocId, da_DelId,
VALUES(daSRC.da_DocId, da_DelId, -- daSRC not available
);
Желаемый результат: До
da_DaID da_DocId da_DelId da_DaId (identity)
----------- ----------- -----------
162 5160 98
163 5160 98
164 5160 99
Несоответствующая строка
da_DaID da_DocId da_DelId
----------- ----------- -----------
300 5300 100
После
da_DaID da_DocId da_DelId
----------- ----------- -----------
162 5160 98
163 5160 98
164 5160 99
165 5160 100 << dad_DocId from daSRC (source)