Я пытаюсь выполнить оператор слияния между двумя таблицами, таблицей A и таблицей B. Предполагается, что оператор обновляет записи, если в указанном поле (Имя) существует совпадение, а для вставки записи совпадение не существует.
При выполнении оператора слияния выдается следующая ошибка:
Violation of UNIQUE KEY constraint 'AK_UniqueName'. Cannot insert duplicate key in object 'dbo.Table B'. The duplicate key value is (A. Adams).
Заявление о слиянии, Таблица A, Таблица B и желаемый результат следующие:
Заявление о слиянии
BEGIN
MERGE dbo.TableB AS T
USING dbo.TableA AS S
ON T.Name LIKE S.Name
WHEN MATCHED THEN
UPDATE SET T.Lname = IsNULL(S.Lname,T.Lname),
WHEN NOT MATCHED THEN
INSERT (Name, Lname);
END
Таблица A
**Name** **Lname**
A. Adams Adams
B. Adams Adams
Таблица B
**Name** **Lname**
A. Adams Adams
C. Adams Adams
Желаемый результат (Таблица B после слияния - с одной новой строкой)
**Name** **Lname**
A. Adams Adams
B. Adams Adams
C. Adams Adams