42 lines
1.1 KiB
Transact-SQL
42 lines
1.1 KiB
Transact-SQL
CREATE PROCEDURE [dbo].[up_add_ban]
|
|
(
|
|
@character_id [uniqueidentifier],
|
|
@ban_name nvarchar(16),
|
|
@ban_memo nvarchar(32)
|
|
)
|
|
as
|
|
set nocount on
|
|
|
|
declare @ban_id [uniqueidentifier];
|
|
declare @ban_class int;
|
|
|
|
SET @ban_id = NULL;
|
|
|
|
SELECT TOP 1 @ban_id = [character_id], @ban_class = [class] FROM CharacterTable WITH(NOLOCK) WHERE [Name] = @ban_name and Block_Type = 0;
|
|
IF( @ban_id IS NOT NULL )
|
|
BEGIN
|
|
IF not EXISTS ( SELECT TOP 1 character_id FROM FriendTableEx with (READUNCOMMITTED) WHERE character_id = @character_id and friend_id = @ban_id )
|
|
BEGIN
|
|
INSERT INTO FriendTableEx VALUES ( @character_id,
|
|
@ban_id,
|
|
@ban_name,
|
|
@ban_class,
|
|
1,
|
|
@ban_memo,
|
|
GetDate()
|
|
);
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE [FriendTableEx]
|
|
SET [IsCut] = 1
|
|
,[CutReason] = @ban_memo
|
|
WHERE character_id = @character_id and friend_id = @ban_id;
|
|
END
|
|
|
|
SELECT TOP 1 [character_id], [class], [level] FROM CharacterTable WITH(NOLOCK) WHERE [Name] = @ban_name;
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT @ban_id, @ban_class, 0
|
|
END
|