5

这个查询是什么意思?

@numberx = @numberx -1
UPDATE  th
SET     @numberX= numberY= @numberX + 1
FROM    Table1 th
INNER JOIN Table2 td ON th.Id = td.idth
WHERE   td.anything = @anything

在第 3 行,什么是“双重平等”?UPDATE 上的“来自”和“内部”是什么?

4

1 回答 1

8

这是一个多表更新,用于为每一行分配连续的数字,Table1其中对应的行Table2具有特定的列值anything

对于每个匹配的行,它将列设置numberY为 的值@numberX + 1。它还将该值重新分配回@numberX,这会导致@numberX每行递增。

这被称为“古怪更新”。这是一种未记录且无法保证生成运行总计的方法。在 2012 年SUM() OVER (ORDER BY ...)应改为使用。

于 2012-12-19T14:13:23.263 回答