我有一列,只有当我传递给存储过程的值与列中的值不同时,我才想更新该列。如果重要的话,它恰好是一个 NVARCHAR(255) 列。
每次都写这个值有什么好处和坏处?首先检查值并仅在我传入的内容与数据库中的内容不同时才写入的优缺点是什么?
我在编写之前进行比较的简化示例:
-- @URL and @ContentName are parameters of the sproc
SET @ExistingURL =
(SELECT TOP 1 C.URL
FROM Content C
WHERE ContentName = @ContentName)
-- update only if the parameter and existing value are different
IF(@ExistingURL != @URL)
BEGIN
UPDATE Content
SET URL = @URL
WHERE ContentName = @ContentName
END