CREATE PROCEDURE [dbo].[up_insert_guild_increase_exp] ( @guild_id [uniqueidentifier] ,@character_id [uniqueidentifier] ,@exp int ,@time NVARCHAR(20) ,@character_name nvarchar(16) ) AS declare @experience bigint declare @charexp int SET NOCOUNT ON IF EXISTS(select guild_id from GuildTable with (READUNCOMMITTED) where guild_id = @guild_id) BEGIN --캐릭터의 길드 포인트를 감소 시킨다 SELECT @charexp = GuildPoint FROM CharacterTable with (READUNCOMMITTED) WHERE character_ID = @character_id IF( 0>=@charexp OR 0>=(@charexp - @exp) ) BEGIN SET @charexp = 0 END ELSE BEGIN SET @charexp = @charexp - @exp END UPDATE CharacterTable SET GuildPoint = @charexp WHERE character_ID = @character_id --길드 포인트 주입 SELECT @experience = experience FROM GuildTable with (READUNCOMMITTED) WHERE guild_id = @guild_id SET @experience = @experience + @exp UPDATE GuildTable SET experience = @experience WHERE guild_id = @guild_id INSERT INTO tbl_Guild_Exp_List VALUES ( @guild_id ,@character_id ,@exp ,@time ,@character_name ) END RETURN @@error