Code:
USE SRO_VT_LOG
GO
CREATE PROCEDURE Switcher_WE_Type_13
@CharID INT
AS
BEGIN TRY
BEGIN TRANSACTION UPDATE_PROCESS_FOR_TYPE_13
DECLARE @OldItemCodeName VARCHAR(129)=
(SELECT ROC.CodeName128 FROM SRO_VT_SHARD.._Inventory AS INV
INNER JOIN SRO_VT_SHARD.._Items AS I ON I.ID64=INV.ItemID AND INV.Slot=6 AND INV.ItemID<>0 AND INV.CharID=@CharID
INNER JOIN SRO_VT_SHARD.._RefObjCommon AS ROC ON I.RefItemID=ROC.ID AND ROC.TypeID1=3 AND ROC.TypeID2=1 AND ROC.TypeID3=6)
DECLARE @ItemTypeNormal VARCHAR(5)=(SELECT RIGHT(@OldItemCodeName,5))
DECLARE @ItemTypeSox VARCHAR(10)=(SELECT RIGHT(@OldItemCodeName,10))
IF( @ItemTypeNormal IN ('_10_A','_10_B','_10_C') OR @ItemTypeSox IN ('_10_A_RARE','_10_B_RARE','_10_C_RARE'))
BEGIN
DECLARE @NewItemID INT=
(SELECT ID FROM SRO_VT_SHARD.._RefObjCommon WITH (NOLOCK) WHERE CodeName128=@OldItemCodeName+'_TYPE_13')
IF ((@NewItemID IS NOT NULL) AND (@NewItemID<>0))
BEGIN
UPDATE I SET I.RefItemID=@NewItemID
FROM SRO_VT_SHARD.._Inventory AS INV
INNER JOIN SRO_VT_SHARD.._Items AS I ON I.ID64=INV.ItemID AND INV.Slot=6 AND INV.ItemID<>0 AND INV.CharID=@CharID
END
END
COMMIT TRANSACTION UPDATE_PROCESS_FOR_TYPE_13
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION UPDATE_PROCESS_FOR_TYPE_13
PRINT 'Error has been occured while updating process for TYPE_13'
END CATCH






