64 lines
1.3 KiB
Transact-SQL
64 lines
1.3 KiB
Transact-SQL
CREATE PROCEDURE [dbo].[up_insert_guild_member]
|
|
@guild_id [uniqueidentifier],
|
|
@character_id [uniqueidentifier],
|
|
@name nvarchar(16),
|
|
@alias_name nvarchar(16),
|
|
@grade int,
|
|
@class int,
|
|
@level int
|
|
AS
|
|
BEGIN
|
|
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
DECLARE @check_character_id [uniqueidentifier];
|
|
DECLARE @result_code INT;
|
|
|
|
SET @check_character_id = NULL;
|
|
SET @result_code = 1; --1 : 성공 / -1 : 프로시저 오류 / -2 : INSERT 실패 / -3 : UPDATE 실패
|
|
|
|
BEGIN TRY
|
|
|
|
BEGIN TRAN;
|
|
|
|
SELECT @check_character_id = [character_id] from GuildMemberTable with (READUNCOMMITTED) where [character_id] = @character_id; --AND [guild_id] = @guild_id
|
|
IF( @check_character_id IS NULL )
|
|
BEGIN
|
|
|
|
INSERT INTO GuildMemberTable
|
|
VALUES
|
|
( @guild_id, --0
|
|
@character_id, --1
|
|
@name, --2
|
|
@alias_name, --3
|
|
@grade,
|
|
@class, --4
|
|
@level,
|
|
GetDate()
|
|
);
|
|
|
|
UPDATE [dbo].[CharacterTable] SET [GuildID]=@guild_id WHERE [character_id] = @character_id
|
|
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
|
|
SET @result_code = -2;
|
|
|
|
END
|
|
|
|
COMMIT TRAN;
|
|
|
|
SELECT result_code = @result_code; --결과 코드 전달
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
|
|
ROLLBACK TRAN;
|
|
|
|
SELECT result_code = -1;
|
|
|
|
END CATCH
|
|
|
|
END
|