如果新值相同,SQL是否会更新记录?

时间:2012-06-04 13:39:26

标签: sql sql-server sql-server-2008 tsql

如果记录没有变化,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

2 个答案:

答案 0 :(得分:5)

是的,它会尝试覆盖。

答案 1 :(得分:1)

你必须手动控制它,在where子句中你可以把所有字段放在新值不同的地方,并且你的表的id等于你的参数,你将确保只有修改过的记录将是更新。

    UPDATE table
    SET field1 = @field1,
                 field2 = @field2
    WHERE field1 != @field1 AND
          field2 != @field2 AND
          id = @id