CREATE PROCEDURE [dbo].[up_create_guild] @guild_name nvarchar(20), @character_id [uniqueidentifier], @guild_id [uniqueidentifier], @master_name nvarchar(16), @cost_money int, @server smallint, @max_member int, @group_id smallint AS BEGIN SET NOCOUNT ON; SET XACT_ABORT ON; DECLARE @my_money int, @error_code int, @Class int, @Level int, @check_guild_id uniqueidentifier, @check_character_id uniqueidentifier, @check_member_id uniqueidentifier SET @check_guild_id = NULL; SET @check_character_id = NULL; SET @check_member_id = NULL; BEGIN TRY BEGIN TRAN; SET @error_code = 1; SELECT @check_character_id = [character_id], @Class = [Class], @Level = [level], @my_money = [gold] FROM [dbo].[CharacterTable] WITH (READUNCOMMITTED) WHERE [character_id] = @character_id; SELECT @check_guild_id = [guild_id] FROM GuildTable WITH (READUNCOMMITTED) WHERE [name] = @guild_name; SELECT @check_member_id = [character_id] FROM GuildMemberTable WITH (READUNCOMMITTED) WHERE [character_id] = @character_id; IF (@check_character_id IS NOT NULL) AND (@check_guild_id IS NULL) AND (@check_member_id IS NULL) BEGIN -- 돈 삭제 및 길드 설정 IF (@my_money - @cost_money) > 0 BEGIN UPDATE [dbo].[CharacterTable] SET [gold] = (@my_money - @cost_money), [GuildID]=@guild_id WHERE [character_id] = @character_id END ELSE BEGIN UPDATE [dbo].[CharacterTable] SET [gold] = 0, [GuildID]=@guild_id WHERE [character_id] = @character_id END -- INSERT 길드 정보 INSERT INTO GuildTable VALUES ( @guild_id, --0 @server, @guild_name, --1 @character_id, --2 Master 0, --3 Exp 10000, --4 Point 4000100, --5 room_id @max_member, --6 Max Member '', --7 notice 'url', --8 icon 0, -- block_type 8191, -- permission01 2028, -- permission02 1920, -- permission03 1920, -- permission04 1920, -- permission05 1920, -- permission06 1920, -- permission07 0, -- permission08 1, -- level @group_id, 0 ); -- INSERT 길드 멤버 정보 INSERT INTO GuildMemberTable VALUES ( @guild_id, @character_id, @master_name, '', 0, @Class, @Level, GetDate() ); --길드 창고 정보 추가 -- INSERT INTO tbl_Guild_Storage_Info VALUES (@guild_id, 1, 0, 0, 1) SELECT ERROR_CODE = @error_code, * FROM GuildTable WITH (READUNCOMMITTED) WHERE guild_id = @guild_id END ELSE BEGIN SET @error_code = -1 SELECT ERROR_CODE = @error_code; END COMMIT TRAN; END TRY BEGIN CATCH ROLLBACK TRAN; SET @error_code = -1 SELECT ERROR_CODE = @error_code; END CATCH END