1. 查询重复数据
Select * From SF_Org_Relation_Department_User
Where (SF_Org_Relation_Department_User.OD_Id+'_'+SF_Org_Relation_Department_User.OU_Id) in (
Select OD_Id+'_'+OU_Id From SF_Org_Relation_Department_User group by OD_Id,OU_Id having COUNT(*)>1)
2. 删除重复数据,只保留一条
Declare @odid varchar(50)
Declare @ouid varchar(50)
DECLARE Table_Cursor CURSOR FOR
Select OD_Id,OU_Id From SF_Org_Relation_Department_User
Where (SF_Org_Relation_Department_User.OD_Id+'_'+SF_Org_Relation_Department_User.OU_Id) in (
Select OD_Id+'_'+OU_Id From SF_Org_Relation_Department_User group by OD_Id,OU_Id having COUNT(*)>1)
Open Table_Cursor
FETCH NEXT FROM Table_Cursor INTO @odid,@ouid
WHILE @@FETCH_STATUS = 0
BEGIN
Delete From SF_Org_Relation_Department_User Where OD_Id=@odid and OU_Id=@ouid
and ORDU_Id not in (Select top 1 ORDU_Id From SF_Org_Relation_Department_User Where OD_Id=@odid and OU_Id=@ouid)
FETCH NEXT FROM Table_Cursor INTO @odid,@ouid
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor