数据库存储过程问题!!!!急
来源:百度知道 编辑:UC知道 时间:2024/06/07 18:27:38
CREATE PROCEDURE ManualUser_CheckByTitle
@TitleID INT,
@DeltaMoney INT,
@MoneyType INT
------------------------------------------------------------------
---- 给推送某条新闻的用户进行结算
---- @TitleID 推送新闻编号
---- @DeltaMoney 虚拟货币数目
-----@MoneyType 货币类型 1=金币 2=银币
AS
DECLARE @UserName varchar(30),
@ID INT,
@TmpMoney numeric(10,1)
SET @TmpMoney = CASE WHEN @MoneyType = 2
THEN 0.1 * @DeltaMoney
ELSE @DeltaMoney
END
--- 检查该条推送的用户情况
DECLARE ManualUser_Cursor CURSOR FOR
SELECT UserName,[ID]
FROM tb_ManualUser
WHERE TitleID = @TitleID
OPEN ManualUser_Cursor
FETCH NEXT FROM ManualUser_Cursor
INTO @UserName, @ID
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC MoneyDetail_Add @UserName, 1, @ID, 1, @DeltaMoney, @MoneyT
CREATE PROCEDURE ManualUser_CheckByTitle ---------创建存储过程
@TitleID INT,
@DeltaMoney INT,
@MoneyType INT ----------声明3个变量都是整型
------------------------------------------------------------------
---- 给推送某条新闻的用户进行结算
---- @TitleID 推送新闻编号
---- @DeltaMoney 虚拟货币数目
-----@MoneyType 货币类型 1=金币 2=银币
AS
DECLARE @UserName varchar(30),
@ID INT,
@TmpMoney numeric(10,1) ----------声明三个变量。
SET @TmpMoney = CASE WHEN @MoneyType = 2 ---------给@TmpMoney赋初始值,当变量MoneyType=2时,他的赋值为变量DeltaMoney数值的十分之一
THEN 0.1 * @DeltaMoney
ELSE @DeltaMoney ---------其他情况赋值为变量DeltaMoney值
END
--- 检查该条推送的用户情况
DECLARE ManualUser_Cursor CURSOR FOR -------自定义虚拟表
SELECT UserName,[ID]
FROM tb_ManualUser
WHERE TitleID = @TitleID ------虚拟表内容来源为tb_ManualUser表的UserName和ID两个字段,只要是TitleID = @TitleID就取值。
OPEN ManualUser_Cursor ----打开虚拟表
FETCH NEXT FROM ManualUser_Cursor -----从表里依次取值
INT