我创建的存储过程如下:
create procedure [dbo].[Pr_MobileGame_SendPrize](
@Description varchar(250), ---发放奖品缘由描述
@game_id varchar(50), ---游戏id
@prize_qty varchar(50), --奖品数量
@prize_desc varchar(200) --奖品详细信息
)
as
begin
set nocount on
declare @error int
declare @time int --发奖时间
begin transaction
set @error=0
select @time=DATEDIFF(S,'1970-01-01',GETDATE())-8*3600
INSERT INTO dbo.t_message_test20131219
(userid, recv_userid, msg_type, game_id, area_id, title, content, attachment, send_time, status, recv_game_id, recv_area_id, isread, roleid)
SELECT
0,
userid,
107, @game_id,
'',
@Description,
@prize_qty,
@prize_desc,
@time,
0,
@game_id,
'',
0,
''
FROM
dbo.t_user_game nolock
WHERE
game_id=@game_id
set @error=@@ERROR
if @error<>0
begin
rollback transaction
insert into dbo.Log_Pr_MobileGame_SendPrize
select '0',@time,@Description,@game_id,@prize_qty,@prize_desc
return -1
end
else
begin
insert into dbo.Log_Pr_MobileGame_SendPrize
select '1',@time,@Description,@game_id,@prize_qty,@prize_desc
return 1
end
commit transaction
end
使用下面的实例调用:
declare @Description varchar(250),@game_id varchar(50),@prize_qty varchar(50),@prize_desc varchar(200)
select @description='测试发奖', ---发放奖品缘由描述
@game_id='project_mg', ---游戏id
@prize_qty='5|1000', --奖品数量
@prize_desc='Energy|5|Money|1000' --奖品详细信息
exec dbo.Pr_MobileGame_SendPrize
@Description,
@game_id,
@prize_qty,
@prize_desc
却报如下错误,请版主帮我看看怎么回事: