sql server UPDATE combined with INNER JOIN with itself



我在SQL SERVER中发现以下UPDATE语句存在问题

UPDATE
    table_a
SET
    table_a.More = -1
FROM
    table_a
INNER JOIN
    ( SELECT column1, COUNT(*)  AS More 
      FROM table_a 
      GROUP BY column1 ) AS table_b
ON
    table_a.column1 = table_b.column1

请注意,内部联接部分使用表本身。 在此UPDATE之后,我预计有些行More等于-1.但我只得到了1。我 100% 确定column1有重复项。我错过了什么?

我发现的问题是有人将列More定义为bit类型!

我这里的问题是数据类型,在位类型中,您只能有 1 或 0 或 NULL。将数据类型更改为 int

最新更新