Я хочу сравнить @tempTable с таблицей A, если соответствует, тогда обновите FieldValue @tempTable, равное id таблицы A;если не совпадает, вставьте значения и получите идентификатор таблицы A для обновления FieldValue @ tempTable.
Следующий мой запрос SQL:
create table [dbo].[TableA]([Id] int Indentity(1,1),[Data] [sql_variant] NULL)
declare @tempTable table (FieldValue nvarchar(1000),FieldType nvarchar(1000))
insert @tempTable values ('some content','A Type')
merge
tableA
using (
select
FieldValue
from
@tempTable
) x
on tableA.[Data] = x.FieldValue
when not matched then
insert values (x.FieldValue)
when matched then
update set x.FieldValue = tableA.[Id] ;
Ниже приводится сообщение об ошибке:
Невозможно связать многоэлементный идентификатор "x.FieldValue".
Ошибка выглядит так, как будто это разные типы данных между x.FieldValue и tableA.id, поэтому янастройте их на тот же тип данных, но он все еще не работает, и я не знаю, как это исправить.