Sql MERGE语句语法不正确
我正在尝试将临时表中的Sql MERGE语句语法不正确,sql,Sql,我正在尝试将临时表中的合并到常规表中。但是,SQL Server Management Studio在UPDATE语句中的ZipCodeTerritory表名上显示错误 我以前没有写过MERGE,但是我看不出下面的语法有任何错误。由于intellisense错误报告可能与Management Studio相当不具描述性,其他人能看到下面的查询有什么问题吗 MERGE INTO ZipCodeTerritory as Target USING ZipCodeTerritoryTemp as Sou
合并到常规表中。但是,SQL Server Management Studio在UPDATE
语句中的ZipCodeTerritory
表名上显示错误
我以前没有写过MERGE
,但是我看不出下面的语法有任何错误。由于intellisense错误报告可能与Management Studio相当不具描述性,其他人能看到下面的查询有什么问题吗
MERGE INTO ZipCodeTerritory as Target
USING ZipCodeTerritoryTemp as Source
ON
Target.Id = Source.Id
WHEN MATCHED THEN
UPDATE ZipCodeTerritory SET Target.ChannelCode = Source.ChannelCode, Target.DrmTerrDesc = Source.DrmTerrDesc, Target.IndDistrnId = Source.IndDistrnId,
Target.StateCode = Source.StateCode, Target.ZipCode = Source.ZipCode, Target.EndDate = Source.EndDate, Target.EffectiveDate = Source.EffectiveDate,
Target.LastUpdateId = Source.LastUpdateId, Target.LastUpdateDate = Source.LastUpdateDate, Target.ErrorCodes = Source.ErrorCodes,
Target.Status = Source.Status
WHERE Target.Id = Source.Id
WHEN NOT MATCHED THEN
INSERT INTO ZipCodeTerritory (ChannelCode, DrmTerrDesc, IndDistrnId, StateCode, ZipCode, EndDate, EffectiveDate, LastUpdateId, LastUpdateDate, ErrorCodes, Status)
VALUES(Source.ChannelCode, Source.DrmTerrDesc, Source.IndDistrnId, Source.StateCode, Source.ZipCode, Source.EndDate, Source.EffectiveDate, Source.LastUpdateId, Source.LastUpdateDate, Source.ErrorCodes, Source.Status)
,Update
和Insert
子句没有表名。它也不是合并成简单合并
MERGE ZipCodeTerritory as Target
...
WHEN MATCHED THEN
UPDATE SET Target.ChannelCode = Source.ChannelCode ...
WHEN NOT MATCHED THEN
INSERT (Ch ...
为什么??表名是多余的,因为它是在Merge
子句中通知的