Code:
USE [Telecaster] GO /****** Object: StoredProcedure [dbo].[smp_delete_item_keeping_info] Script Date: 30.06.2012 12:08:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- start of smp_delete_item_keeping_info ALTER PROCEDURE [dbo].[smp_delete_item_keeping_info] @IN_KEEPING_UID INT, @IN_RETURN_ITEM_TO_OWNER BIT, @IN_PREV_OWNED_ITEM_UID INT AS SET NOCOUNT ON BEGIN TRANSACTION -- DB µ¥µå¶ôÀ» ¹æÁöÇϱâ À§ÇØ Item.owner_id °ª¸¸ ¾ò¾î³õ°í ItemKeeping ·¹ÄÚµå »èÁ¦ ÈÄ Item Å×ÀÌºí¿¡ ¾÷µ¥ÀÌÆ® DECLARE @OWNER_UID INT DECLARE @ITEM_UID BIGINT DECLARE @ITEM_CODE INT DECLARE @SUMMON_UID INT SELECT @ITEM_UID = item_id, @OWNER_UID = owner_id FROM dbo.ItemKeeping WHERE sid = @IN_KEEPING_UID -- À§¿¡¼* 1°ÇÀÇ µ¥ÀÌÅͰ¡ °Ë»öµÇÁö ¾Ê¾Ò´Ù¸é DELETE ¹®¿¡ ÀÇÇØ ¿µÇâÀ» ¹ÞÀ» ÇàÀÇ ¼ö°¡ ºñÁ¤»óÀûÀ̶ó´Â À̾߱Ⱑ µÇ¹Ç·Î ó¸® Áß´Ü IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRANSACTION RETURN @@ERROR END SELECT @ITEM_CODE = code FROM dbo.Item WHERE sid = @ITEM_UID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRANSACTION RETURN @@ERROR END SELECT @SUMMON_UID = CASE WHEN ( flag & 0x80000000 <> 0 ) THEN socket_0 ELSE 0 END FROM dbo.Item WHERE sid = @ITEM_UID DELETE dbo.ItemKeeping WHERE sid = @IN_KEEPING_UID IF @IN_RETURN_ITEM_TO_OWNER = 1 -- ¼*¹ö ·ÎÁ÷»ó ¾ÆÀÌÅÛ Äڵ尡 0 ÀÎ ¾ÆÀÌÅÛ(·çÇǸ¦ ¾ÆÀÌÅÛ Å¸ÀÔÀ¸·Î DB¿¡ º¸°üÇÏ´Â °æ¿ì)Àº -- À¯Àú¿¡°Ô ¹ÝȯµÇ¾î¼*´Â ¾ÈµÇ¹Ç·Î(À¯Àú Àκ¥Å丮¿¡ ·çÇÇ·Î Áö±Þ) ¾ÆÀÌÅÛ Áö±Þ ó¸® Á¦¿Ü BEGIN IF @IN_PREV_OWNED_ITEM_UID<>0 BEGIN IF @ITEM_CODE <> 0 BEGIN DELETE FROM dbo.Item WHERE sid = @ITEM_UID IF @SUMMON_UID <> 0 BEGIN UPDATE dbo.Summon SET owner_id = @OWNER_UID, account_id = 0 WHERE sid = @SUMMON_UID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRANSACTION RETURN @@ERROR END END END ELSE BEGIN UPDATE dbo.Item SET keeping_id = 0 WHERE sid = @ITEM_UID END END ELSE BEGIN IF @ITEM_CODE <> 0 BEGIN UPDATE dbo.Item SET owner_id = @OWNER_UID, keeping_id = 0 WHERE sid = @ITEM_UID IF @SUMMON_UID <> 0 BEGIN UPDATE dbo.Summon SET owner_id = @OWNER_UID, account_id = 0 WHERE sid = @SUMMON_UID IF @@ROWCOUNT <> 1 BEGIN ROLLBACK TRANSACTION RETURN @@ERROR END END END ELSE BEGIN UPDATE dbo.Item SET keeping_id = 0 WHERE sid = @ITEM_UID END END END /*ELSE BEGIN if @IN_PREV_OWNED_ITEM_UID<>0 BEGIN UPDATE dbo.Item SET keeping_id = 0, owner_id = 0 WHERE sid = @ITEM_UID END ELSE BEGIN UPDATE dbo.Item SET keeping_id = 0, owner_id = @OWNER_UID WHERE sid = @ITEM_UID END END*/ COMMIT TRANSACTION RETURN @@ERROR -- end of smp_delete_item_keeping_info