【发布时间】:2018-10-18 08:18:59
【问题描述】:
我如何在下面的代码中使用MERGE Sql 语句或UPDATE 语句。我有一个名为 MachineName 的 columnName,其他列值发生变化,但 MachineName 没有变化。如果MachineName 列发生更改,我需要在第二行中插入新值。如果不是,我需要更新同一行。我怎样才能做到这一点。这是一个正确的方法吗?请帮忙
MERGE INTO [devLaserViso].[dbo].[Machine] WITH (HOLDLOCK)
USING [devLaserViso].[dbo].[Machine]
ON (MachineName = MachineName)
WHEN MATCHED
THEN UPDATE SET MachineName = L1,ProgramName= ancdh.pgm, TotalCount= 10, RightCount=4,
LeftCount= 3,ErrorCode=0,FinishingTime=fsefsefef
WHEN NOT MATCHED
THEN INSERT (MachineName, ProgramName, TotalCount, RightCount, LeftCount, ErrorCode, FinishingTime)
VALUES (L02, djiwdn.pgm, 11, 5, 4, 0, dnwdnwoin);
【问题讨论】:
-
样本数据和期望的结果会很有启发性。您正在执行自联接,逻辑没有意义。
标签: sql sql-server merge sql-update upsert