寻找更快的方法来更新SQL表上的许多列

时间:2017-06-15 14:37:33

标签: sql sql-server database

对SQL不熟悉,有人会知道更快的方式进行以下更新吗?

可能使用数组或每个元素。

update ItemDynamic
set price = SnapShotPrice
where SnapShotPrice <> Price

update ItemDynamic
Set PriceLevelA = SnapShotPriceA
where snapshotpriceA <> PricelevelA

update ItemDynamic
Set PriceLevelB = SnapshotpriceB
where snapshotpriceB <> PricelevelB

update ItemDynamic
Set PriceLevelC = SnapshotpriceC
where snapshotpriceC <> PricelevelC

1 个答案:

答案 0 :(得分:4)

您可以在单个更新语句中执行此操作。这样的事情。

update ItemDynamic
SET price = CASE WHEN SnapShotPrice <> Price then SnapShotPrice ELSE price end
    , PriceLevelA = CASE WHEN snapshotpriceA <> PricelevelA then SnapShotPriceA ELSE PriceLevelA end
    , PriceLevelB = CASE WHEN snapshotpriceB <> PricelevelB THEN SnapshotpriceB ELSE PriceLevelB end

不确定第四个更新语句的重点是什么,因为它与第三个更新语句相同。