6

如果记录没有更改,SQL 会更新记录吗?

例如,替换是否更有效

UPDATE TABLE myTable 
Set Col1 = ISNULL(Col1,'')
...
Set Col100 = ISNULL(Col30,'')

UPDATE TABLE myTable 
Set Col1 = ISNULL(Col1,'')
...
Set Col100 = ISNULL(Col30,'')
WHERE 
Col1 IS NULL OR
...
Col30 IS NULL
4

2 回答 2

5

是的,它会尝试覆盖。

于 2012-06-04T13:41:36.677 回答
1

您必须手动控制它,在 where 子句中,如果它们与新值不同,您可以将所有字段放入其中,并且表的 id 等于您的参数,您将确保仅更新修改的记录。

    UPDATE table
    SET field1 = @field1,
                 field2 = @field2
    WHERE field1 != @field1 AND
          field2 != @field2 AND
          id = @id
于 2012-06-04T14:02:19.227 回答