更新SSMS/T-SQL中的多列:
我有下面的场景更新SSMS/T-SQL中的多列:,sql,sql-server,sql-server-2008,tsql,sql-update,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 Atable SET C1 = CASE WHEN c2 = 'yValue' THEN 'xValue' ELSE c1 END,
UPDATE ATable
SET C1 = 'XValue'
WHERE C2 = 'YValue'
UPDATE ATable
SET C3 = 'MValue'
WHERE C4 = 'NValue'
对于性能调整,我能做些什么使它们在一次更新下运行吗?这样会更好吗
谢谢您可以使用
案例运行一次更新
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'
@AndriyM是的,有
WHERE
子句。这是OP的问题,不是我的。@njk你为什么这么认为?@KennethFisher还取决于索引。取决于可用的索引。如果对c2
和c4
进行索引,则可以用完整扫描替换2次搜索。