如果记录没有变化,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
答案 0 :(得分:5)
是的,它会尝试覆盖。
答案 1 :(得分:1)
你必须手动控制它,在where子句中你可以把所有字段放在新值不同的地方,并且你的表的id等于你的参数,你将确保只有修改过的记录将是更新。
UPDATE table
SET field1 = @field1,
field2 = @field2
WHERE field1 != @field1 AND
field2 != @field2 AND
id = @id