32 lines
		
	
	
		
			676 B
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			676 B
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
declare @ld as table
 | 
						|
(
 | 
						|
	DocID int,
 | 
						|
	DocRank int
 | 
						|
)
 | 
						|
insert into @ld
 | 
						|
select DOCid, dense_rank() OVER(ORDER BY DOCCONTENT) AS DocRank
 | 
						|
 from documents
 | 
						|
 where libtitle != ''
 | 
						|
 
 | 
						|
 declare @mld as table
 | 
						|
(
 | 
						|
	DocRank int primary key,
 | 
						|
	MinDocID int
 | 
						|
)
 | 
						|
insert into @mld
 | 
						|
select DocRank, min(DocID) MinDocID from @ld Group by DocRank
 | 
						|
 | 
						|
declare @trans as table
 | 
						|
(
 | 
						|
	DocID int primary key,
 | 
						|
	MinDocID int
 | 
						|
)
 | 
						|
Insert into @Trans
 | 
						|
Select DocID,MinDocID from @ld ld
 | 
						|
Join @mld mld on mld.docrank = ld.docrank
 | 
						|
where MinDocID != DocID
 | 
						|
order by ld.DocRank
 | 
						|
Update EE set DocID = MinDocID from entries EE
 | 
						|
Join @trans TT on EE.DocID = TT.DocID
 | 
						|
 | 
						|
Delete from Documents where DocID Not in (Select DocID From Entries) |