AOPSERVER take the script that repairs some problems: delete items, characters and much more:
USE [AT_GameDB01]
GO
/****** Object: StoredProcedure [dbo].[rasp_SolItemRemove] Script Date: 12/09/2016 07:39:13 p.m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[rasp_SolItemRemove]
@

Bigint
, @

pe tinyint
, @

s smallint
, @

Unique smallint
, @

Num smallint
, @

ItemNum smallint = NULL OUTPUT
AS
SET NOCOUNT ON
SET XACT_ABORT ON
UPDATE [dbo].[tbl_SolItem]
SET [ItemUnique] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [ItemUnique]
END
, @

ItemNum = [ItemNum] = [ItemNum] - @

Num
, [SerialNum] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [SerialNum]
END
, [Para1] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [Para1]
END
, [Para2] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [Para2]
END
, [StartHourVary] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [StartHourVary]
END
, [DurationHourVary] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [DurationHourVary]
END
, [RareInfo] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [RareInfo]
END
, [Rank] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [Rank]
END
, [CurDurability] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [CurDurability]
END
, [MaxDurability] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [MaxDurability]
END
, [SealInfo] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [SealInfo]
END
, [Particle] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [Particle]
END
, [Effect] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [Effect]
END
, [Reserved] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [Reserved]
END
, [Reserved1] = CASE WHEN [ItemNum] = @

Num THEN 0 ELSE [Reserved1]
END
WHERE [SolID] = @

and [ItemPos] = @

s and [PosType] = @

pe and [ItemUnique] = @

Unique and [ItemNum] >= @

Num and @

Num > 0
IF dbo.rf_CheckError( @@ROWCOUNT, @@ERROR ) <> 1
RETURN 0
ELSE
RETURN 1