При анализе вашего запроса в SQL Management Studio выдается следующая ошибка:
Сообщение 10739, уровень 15, состояние 1, строка 7 Список столбцов вставки, используемый в
оператор MERGE не может содержать идентификаторы из нескольких частей. Использовать один
вместо этого идентификаторы деталей.
Затем я удаляю идентификаторы ...
MERGE
PopulationData AS a
USING ImagesData AS b
ON a.ID = b.ID
WHEN MATCHED THEN
UPDATE SET a.SURNAME = 'joe123'
WHEN NOT MATCHED THEN INSERT(ID,SURNAME)
VALUES (12454,'joe123');
... и запрос успешно анализируется. Следовательно, синтаксическая ошибка почти наверняка не исходит из вашего оператора MERGE. Вы действительно выполняете только то заявление, которое вы опубликовали, или это часть более крупного сценария или процедуры? Если дважды щелкнуть сообщение об ошибке, оно должно выделить строку с синтаксической ошибкой (по крайней мере, в SQL 2008).
Обновление: я заметил, что вы пометили вопрос для SQL 2005 и 2008, но MERGE поддерживается только в SQL 2008. При синтаксическом анализе запроса в SQL 2005 возникает синтаксическая ошибка.