触发更新比较同一行

时间:2015-06-12 14:25:07

标签: sql sql-server database triggers sql-update

问题是我需要在2行或更多行具有相同数据时更新一行,因此我需要比较同一列以进行更新。这将更好地解释我:

我有这个触发器(但我不想删除任何东西)

DELETE n1
FROM Codes_Cost n1, Codes_Cost n2
WHERE n1.Code = n2.Code and n1.PeriodID = n2.PeriodID
AND n1.ID < n2.ID;

我需要做类似的事情但更新另一行。像这样的东西

UPDATE Codes_Cost n2
SET n2.Status = 'Old'
WHERE n1.Code = n2.Code and n1.ID < n2.ID

但显然它不起作用。 我能做什么?什么样的查询可以帮助?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,这应该有用。

UPDATE Codes_Cost 
SET Status = 'Old'
FROM Codes_Cost 
INNER JOIN Codes_Cost n2 ON Codes_Cost.Code = n2.Code 
WHERE
Codes_Cost.ID < n2.ID

编辑了不明确的表名。