不用运行两个单独的查询来替换innerSku
表中的outerSku
和parts
字段,有没有办法在一个查询中执行此操作而不影响性能?
UPDATE
parts
SET
innerSku = @newSku
WHERE
innerSku = @oldSku;
UPDATE
parts
SET
outerSku = @newSku
WHERE
outerSku = @oldSku;
最佳答案
我会坚持两个单独的语句,因为使用following会更新一些不需要更新的行,它将会将行更新为自身,这不会更改数据,但是会发生不必要的更新操作,我会坚持两个更新。无论如何,以下是如何使用一个update语句更新该表的方法。
UPDATE Parts
SET innerSku = CASE
WHEN innerSku = @oldSku
THEN @newSku ELSE innerSku
END
,outerSku = CASE
WHEN outerSku = @oldSku
THEN @newSku ELSE outerSku
END
WHERE innerSku = @oldSku OR outerSku = @oldSku