我正在尝试使用每行唯一值填充在其InterfaceID (INT)
列中缺少值的所有行。
我正在尝试执行以下查询:
UPDATE prices SET interfaceID = (SELECT ISNULL(MAX(interfaceID),0) + 1 FROM prices)
WHERE interfaceID IS null
我希望对每一行都评估
(SELECT ISNULL(MAX(interfaceID),0) + 1 FROM prices)
,但是只执行一次,因此所有受影响的行都将获得相同的值,而不是不同的值。可以在单个查询中完成吗?
最佳答案
declare @i int = SELECT ISNULL(MAX(interfaceID),0) + 1 FROM prices
update prices
set interfaceID = @i , @i = @i + 1
where interfaceID is null
应该做的工作