这个查询是什么意思?
@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上这是什么“来自”和“内在”?
答案 0 :(得分:8)
这是一个多表更新,用于为Table1
中的每一行分配连续数字,其中Table2
中的相应行具有列anything
的特定值。
对于每个匹配的行,它将列numberY
设置为@numberX + 1
的值。它还会将该值重新分配回@numberX
,这会导致每行增加@numberX
。
这被称为“古怪的更新”。这是一种无证且无法保证的生成运行总计的方法。在2012年,应该使用SUM() OVER (ORDER BY ...)
。