在SSMS / T-SQL中更新多个列:

时间:2013-02-19 14:35:50

标签: sql sql-server sql-server-2008 tsql sql-update

我有以下情况。

 UPDATE ATable
SET C1 = 'XValue'
WHERE C2 = 'YValue'

UPDATE ATable
SET C3 = 'MValue'
WHERE C4 = 'NValue'

对于性能调优,我可以做任何事情让它们在一个UPDATE下运行吗?它会更好吗?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以使用CASE

运行一次更新
UPDATE  Atable
SET     C1 = CASE WHEN c2 = 'yValue' THEN 'xValue' ELSE c1 END,
        C3 = CASE WHEN c4 = 'nvalue' THEN 'mValue' ELSE c3 END
WHERE   c2 = 'yValue' OR c4 = 'nvalue'