【发布时间】:2015-11-05 05:05:53
【问题描述】:
如何检测并仅在新旧值不同时才更新,否则不更新
Update Student
SET First = @FirstName
WHERE EmpId = 1
【问题讨论】:
标签: sql sql-server sql-update
如何检测并仅在新旧值不同时才更新,否则不更新
Update Student
SET First = @FirstName
WHERE EmpId = 1
【问题讨论】:
标签: sql sql-server sql-update
您可以将此条件添加到您的 where 子句中:
UPDATE Student
SET First = @FirstName
WHERE First != @FirstName AND EmpId = 1
编辑:
正如 Kevin Suchlicki 在 cmets 中指出的那样,如果 First 可以为空,则应明确处理 nulls:
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))
【讨论】: