更新字段时,是否可以更改列的其他字段?

时间:2019-03-30 15:29:50

标签: sql-server

id status
-------------
1   no
2   yes
3   no
4   yes
5   --

当我将状态列更新为ID 5的“是”时

我想要这样的结果

id    status
-------------
1      no
2      no
3      no
4      no
5      Yes

有可能吗?

2 个答案:

答案 0 :(得分:2)

您可以通过CASE语句或IIF函数来实现。

查询将是:

UPDATE SampleTable SET [Status] = CASE WHEN Id = @InputValue THEN 'yes' ELSE 'no' END;

UPDATE SampleTable SET [Status] = IIF(Id = @InputValue , 'yes', 'no');

DB Fiddle Demo

答案 1 :(得分:0)

我的建议是根据您的需要在一个事务中包含多个更新语句,对于上述示例,您将具有:

update tableName set status = 'Yes' where id = 5;

update tableName set status = 'no' where id <> 5;

在事务中同时具有两个更新查询以同时完成两个查询(成功或失败)是一个很好的选择