如果新值和旧值相同则不更新其他更新

时间:2015-11-04 20:39:05

标签: sql sql-server sql-update

如何检测并仅更新新旧值是否不同,否则不会更新

Update Student
SET First = @FirstName
WHERE EmpId = 1

1 个答案:

答案 0 :(得分:2)

您可以将此条件添加到where子句:

UPDATE Student
SET    First = @FirstName
WHERE  First != @FirstName AND EmpId = 1

编辑:
正如Kevin Suchlicki在评论中指出的,如果First可以为空,那么null应该明确处理:

UPDATE Student
SET    First = @FirstName
WHERE  EmpId = 1 AND ((First != @FirstName) OR
                      (First IS NULL AND @FirstName IS NOT NULL) OR
                      (First IS NOT NULL AND @FirstName IS NULL))