我有一个销售订单行表(sDetail);记录上有一个索引,它实际上是一个候选索引,带有 Order 引用的键加上 STR(行号)。这用于检索特定订单的行。
sDetail 表上还有一个主索引,它是一个顺序 ID。
该命令可能会被修改。如果用户删除了订单行,我在此表中将记录标记为已删除;当我处理时,我通常使用 SET DELETED ON 运行,因此用户看不到这些已删除的记录。
但是,如果他重新创建该行,我很可能会创建一个错误“索引的唯一性被违反”,我明白这一点。为避免产生此错误,我可以看到两种可能的方法:
要么:在索引“FOR !DELETED()”上包含过滤器表达式,以便这些记录在运行时不可见
或者:当我希望测试特定行的记录是否存在时,SET DELETED OFF,测试记录的存在,并在必要时调用它。然后恢复为 SET DELETED ON。
其他开发人员是做什么的?或者,还有更好的方法?
谢谢