快速&禁用特定外键的脏方法

时间:2009-03-05 18:33:36

标签: sql

理想情况下,我会在表中有一个“isActive”字段来指示记录是否处于活动状态,但它会涉及多个存储过程的更改,以使该字段执行其要执行的操作。

我想出了一个肮脏的伎俩,有点想把它拿出来。由于结果集是由几个连接生成的,我想通过附加一个“*”,“x”或者通常不会出现在键中的任何符号来稍微改变其中一个表中的外键。

有什么我应该害怕的吗?

3 个答案:

答案 0 :(得分:3)

在不更改所有其他存储过程的情况下具有“未激活”状态的一种方法是在记录未激活时将记录移动到“非活动”表。

答案 1 :(得分:1)

  

有什么我应该害怕的吗?

是否存在不一致的数据与由于追加特殊字符而引起的不可读数据存在差异?

如果稍后出现此问题,我认为是时候重构您的存储过程或表。

答案 2 :(得分:1)

您是指进入数据库并手动将字符添加到特定行以禁用单个客户或其他任何内容吗?

连接怎么样 - 你可以暂时添加......和CustomerId NOT IN(1234,...)到WHERE子句吗?

我认为你不应该开始搞这样的数据,即使参考完整性允许你这样做。