CREATE PROCEDURE [dbo].[up_mail_gold_payment] @mail_id [uniqueidentifier], @msg nvarchar(350) = 'Bill' as set nocount on declare @character_id [uniqueidentifier], @sender_character_id [uniqueidentifier], @NewMailID [uniqueidentifier] declare @sender_name nvarchar(16), @recver_name nvarchar(16) declare @my_money int, @req_money int begin tran if EXISTS (select [ID] from MailTable with (READUNCOMMITTED) where [ID] = @mail_id) begin --皋老 夸没 陛咀 犬牢 select @character_id = [character_id] ,@recver_name = [receiver] ,@sender_character_id = [send_character_id] ,@sender_name = [sender] ,@req_money = [req_gold] from MailTable with (READUNCOMMITTED) where [ID] = @mail_id --郴捣 犬牢 SELECT @my_money = [gold] FROM [dbo].[CharacterTable] with (READUNCOMMITTED) where [character_id] = @character_id -- 捣 昏力 if (@my_money - @req_money) > 0 begin UPDATE [dbo].[CharacterTable] SET [gold] = (@my_money - @req_money) WHERE [character_id] = @character_id end else begin UPDATE [dbo].[CharacterTable] SET [gold] = 0 WHERE [character_id] = @character_id end -- 措陛 皋老 眠啊 insert into MailTable values ( NEWID(), --0 @sender_character_id, --1 @sender_name, --2 @character_id, --3 @recver_name, --4 @msg, --3 @req_money, --4 0, 0, 0, --8 GETDATE(), 6 -- 措陛 快祈 ); --老馆 快祈栏肺 官操扁 UPDATE [dbo].[MailTable] SET [return_day] = 0 ,[req_gold] = 0 ,[is_open] = 0 ,[create_type] = 0 WHERE [ID] = @mail_id --官诧 皋老 沥焊 促矫 犬牢 select * from dbo.MailTable with (READUNCOMMITTED) where [ID] = @mail_id end declare @ERR int SET @ERR = @@ERROR IF @ERR <> 0 BEGIN RAISERROR('贸府坷幅', 16, 10) IF @@TRANCOUNT <> 0 ROLLBACK RETURN (@ERR) END COMMIT TRAN