set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
--Dupe Deleter V. 1.13 - Jonny
ALTER PROCEDURE [dbo].[DupeDeleter]
@StrUserID varchar(30)
AS
DECLARE @i int, @uid bigint, @uidcount int, @uidcheck int,@num2 varchar(6), @num int, @strserial varchar(400), @stritem varchar(400)
delete from DUPE_CHECK where struserid = @struserid
select @stritem = stritem from userdata where struserid = @struserid
select @strserial = strserial from userdata where struserid = @struserid
set @i = 1
WHILE @i < 401
Begin
Select @num = dbo.GetNum(@strItem, @i)
select @uid = dbo.Getuid(@strserial, @i)
select @num2 = dbo.getlikenum(@num)
if @uid <> 0
begin
-- note: When it inserts see the last value? '@i' that is the position of the item, that is how the deletion script knows
-- what item slot to clear.
insert into DUPE_CHECK values (@StrUserId, @uid, @num, @i)
select @uidcount = count(*) from DUPE_CHECK where uid = @uid and num like @num2+'%' and struserid = @struserid
if @uidcount > 1
begin
insert into DUPE_IDS values (@uid,@num)
update userdata set stritem = dbo.RemoveItem(@stritem, @i) where struserid = @struserid
end
select @uidcount = count(*) from DUPE_CHECK where uid = @uid and num like @num2+'%'
if @uidcount > 2
begin
insert into DUPE_IDS values (@uid,@num)
update userdata set stritem = dbo.RemoveItem(@stritem, @i) where struserid = @struserid
end
select @uidcheck = count(*) from DUPE_IDS where uid = @uid and num like @num2+'%'
if @uidcheck > 0
begin
update userdata set stritem = dbo.RemoveItem(@stritem, @i) where struserid = @struserid
end
end
set @i = @i + 8
End