0
我在SQL服务器中使用MERGE语句来刷新数据,但是我反复得到这个错误INT MERGE语句的ON子句。 代码是'src'的列1没有指定列名合并语句SQL服务器
DECLARE @instance varchar(50)
DECLARE @db varchar (50)
DECLARE @queryEntity nvarchar(max)
SET @instance = (select value from Parameter where name = 'SERVERALIAS')
SET @db = (select value from Parameter where name = 'SERVERDB')
SET @queryEntity = 'Select EntityId,EntityName,CreatedDate,ModifiedDate,Active,TENANTID,PriorityId From [' + @instance + '].[' + @db + '].metadata.Entity Where TENANTID = 1'
MERGE [metadata].[Entity] AS trgt
USING (VALUES(@queryEntity)) AS src
ON (**trgt.EntityId = src.EntityId**)
WHEN matched
--AND trgt.ModifiedDate <= src.ModifiedDate
THEN
-- if the master has a row newer than the client
-- update the client
UPDATE SET trgt.EntityId = src.EntityId,
trgt.EntityName = src.EntityName,
trgt.Createddate = src.CreatedDate,
trgt.ModifiedDate = src.ModifiedDate,
trgt.Active = src.Active,
trgt.TENANTID = src.TENANTID,
trgt.PriorityId = src.PriorityId
WHEN NOT matched BY SOURCE
THEN
DELETE
WHEN NOT matched BY TARGET
THEN
INSERT (EntityId, EntityName, CreatedDate, ModifiedDate, Active, TENANTID, PriorityId)
VALUES (src.EntityId, src.EntityName, src.CreatedDate, src.ModifiedDate, src.Active, src.TENANTID, src.PriorityId);
我认为op期望他的@queryEntity执行 –