48 lines
1.3 KiB
Transact-SQL
48 lines
1.3 KiB
Transact-SQL
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
|