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