我有一张记录如下图所示的表
我必须维护学生ABC的副本,如下所示,因为每个过程中的每个学生只能包含一个活动行。从db end停止每个学生条目重复的最佳方法是什么。 我如何管理活动行的唯一性。
如何检查新的INSERTS以防止将来重复。
答案 0 :(得分:3)
您可以使用唯一的过滤索引来维护唯一性:
create unique index unq_table_name_processid_filtered
on table(name, processid) where IsActive = 'true';
Here是有关该主题的文档。
答案 1 :(得分:1)
create unique index unq_table_name_processid_filtered on table(name, processid) where IsActive = 1;
1表示位类型为真
答案 2 :(得分:0)
我会使用调用UDF的CHECK约束来执行此操作。
您也可以使用TRIGGER进行管理。
答案 3 :(得分:0)
试试吧
WITH CTE
AS
(
SELECT *,RN=ROW_NUMBER() OVER (PARTITION BY orgName ORDER BY orgName DESC)
FROM organizations
)
select *
from CTE
where RN>1
答案 4 :(得分:0)
带过滤器的唯一索引可以解决问题
它也称为过滤索引
T