根据一行的列值更新多行

时间:2014-04-02 23:57:05

标签: sql

我有两个非常简单的INSERT和UPDATE语句。我们的系统设置方式我们只能通过前端一次更新一行(尽管可以更改但需要进行相当多的代码更新)

Process  Scenario  Default
  1         1         True
  1         2         False
  1         3         False
  2         1         False
  2         2         True

如果你看一下上面的示例表,给定进程中只有一个场景可以有default = true (对于流程1,它是方案1,对于流程2,它是方案2

我们之前没有使用Default列,只是昨天才添加,所以后面的代码和sql查询并不是为每个场景只处理一个default = true。

我的问题是 - 更新我的INSERT和UPDATE语句是更好的,这样如果我将一个场景的默认值设置为true,那么我将遍历该过程的所有场景并将Default设置为false或修改我的代码和编写一个新的存储过程,分别更新表。

1 个答案:

答案 0 :(得分:1)

从长远来看,我会将您的代码转换为使用存储过程进行插入和更新,并管理其中的默认值。

作为可以在数据库中单方面实施的即时修复,当默认设置新值时,使用触发器删除任何先前的Default = True。

哦,如果不迟到,请不要使用Default作为列名。默认是保留关键字。喜欢IsDefault之类的东西。