这个SQL查询有什么作用?请解释

时间:2012-12-19 14:11:02

标签: sql

这个查询是什么意思?

@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上这是什么“来自”和“内在”?

1 个答案:

答案 0 :(得分:8)

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

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

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