更新一个值时更新sql中的其他值

时间:2017-03-20 17:34:58

标签: asp.net sql-server sql-server-2008

我想创建一个触发器来更新一行中具有相同值但在另一列中具有相同值的其他行。

这就是我的意思:

原件:

Column a | Column b  | Column C
---------+-----------+-----------
abc      | Maybe     | 01
abcde    | Maybe     | 02
abcde    | Maybe     | 03
abc      | Maybe     | 04
abc      | Maybe     | 05

将一个更改为是:

Column a | Column b  | Column C
---------+-----------+-----------
abc      | Yes       | 01
abcde    | Maybe     | 02
abcde    | Maybe     | 03
abc      | No        | 04
abc      | No        | 05

为了澄清,它与之前和之后的表格相同。我们的想法是,在一列中更改一个值,将在另一列中更改具有相同值的其他值。共同的价值是“abc”。所以我要做的就是创建一个触发器,这样当我在b列中为任何一个“abc”改变“Maybe”时,a列中值为“abc”的其他行将自动拥有它们列b中的值更改为“否”。我对用于此触发器的操作过程有困难,或者如何将行链接在一起同时受到影响。

1 个答案:

答案 0 :(得分:0)

使用after update触发器,您可以执行以下操作:

update t
  set column_b = 'No'
from t
  inner join inserted i
    on t.column_a = i.column_a
where t.id <> i.id /* the table probably has an id */
--where t.column_b <> i.column_b /* if not */