数据库存储过程问题!!!!急

我这有个存储过程 我刚学 不知道 什么意思 想找一个东西修改不知道在哪修改 里边有个 money的添加 但是我不知道哪有哪个 固定的值 现在固定的值是1
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, @MoneyType ---添加入账信息

EXEC fUser_UpdateMoney @UserName, @TmpMoney ---更新用户货币总数

FETCH NEXT FROM ManualUser_Cursor
INTO @UserName, @ID
END
CLOSE ManualUser_Cursor
DEALLOCATE ManualUser_Cursor

UPDATE tb_ManualUser SET
TotalMoney = TotalMoney + @TmpMoney,
Flag = 1
WHERE TitleID = @TitleID
GO
有哪位大虾把 从上边到下边的代码 每句话的意思 标一下 小弟不胜感谢

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 -----从表里依次取值
INTO @UserName, @ID -----把取的值依次赋给两个变量@UserName, @ID

WHILE @@FETCH_STATUS = 0 ------循环开始
BEGIN
EXEC MoneyDetail_Add @UserName, 1, @ID, 1, @DeltaMoney, @MoneyType ---添加入账信息

EXEC fUser_UpdateMoney @UserName, @TmpMoney ---更新用户货币总数

FETCH NEXT FROM ManualUser_Cursor ------和上面一个意思
INTO @UserName, @ID
END
CLOSE ManualUser_Cursor
DEALLOCATE ManualUser_Cursor -------关闭虚拟表

UPDATE tb_ManualUser SET
TotalMoney = TotalMoney + @TmpMoney,
Flag = 1
WHERE TitleID = @TitleID -------------更新tb_ManualUser表的TotalMoney,Flag重新赋值,条件是TitleID = @TitleID
GO
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-13
如果是SQLSERVER的话,修改存储过程应该在“查询分析器”里修改!如果是其他我就不清楚了。不过我没太看懂你想要修改成什么样子?
=================================================================
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 --当“@@FETCH_STATUS ”为 0 时开始循环执行MoneyDetail_Add和fUser_UpdateMoney 两个存储过程
BEGIN
EXEC MoneyDetail_Add @UserName, 1, @ID, 1, @DeltaMoney, @MoneyType ---添加入账信息 --执行 存储过程 “MoneyDetail_Add”

EXEC fUser_UpdateMoney @UserName, @TmpMoney ---更新用户货币总数

FETCH NEXT FROM ManualUser_Cursor
INTO @UserName, @ID
END
CLOSE ManualUser_Cursor --关闭游标
DEALLOCATE ManualUser_Cursor

UPDATE tb_ManualUser SET -更新
TotalMoney = TotalMoney + @TmpMoney,
Flag = 1
WHERE TitleID = @TitleID
GO
------------------------------------------

这个存储过程不可能独立使用的,你要搞清楚它跟其他的关系才行!否则一头雾水!
第2个回答  2008-11-13
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
--若@MoneyType = 2 则@TmpMoney = 0.1 *@DeltaMoney 如果 @MoneyType != 2 则 @TmpMoney = @DeltaMoney

DECLARE ManualUser_Cursor CURSOR FOR
SELECT UserName,[ID]
FROM tb_ManualUser
WHERE TitleID = @TitleID

--创建游标,游标的条件是 SELECT UserName,[ID] FROM tb_ManualUser
WHERE TitleID = @TitleID

OPEN ManualUser_Cursor

FETCH NEXT FROM ManualUser_Cursor
INTO @UserName,

--打开游标 将从游标里面取出来的 UserName,ID 两个字段放入到@UserName,
@ID 变量中。

WHILE @@FETCH_STATUS = 0 --这个是游标的循环条件
BEGIN
EXEC MoneyDetail_Add @UserName, 1, @ID, 1, @DeltaMoney, @MoneyType ---添加入账信息

--执行 MoneyDetail_Add 这个存储过程后面为传入的参数

EXEC fUser_UpdateMoney @UserName, @TmpMoney ---更新用户货币总数

--执行 fUser_UpdateMoney 这个存储过程后面为传入的参数。

FETCH NEXT FROM ManualUser_Cursor
INTO @UserName, @ID

--取游标里的下一条记录
END
CLOSE ManualUser_Cursor
DEALLOCATE ManualUser_Cursor
--关闭清空游标

UPDATE tb_ManualUser SET
TotalMoney = TotalMoney + @TmpMoney,
Flag = 1
WHERE TitleID = @TitleID
--修改tb_ManualUser这个表里面的 TotalMoney和Flag这两个字段
--我想你找的Money的修改是不是TotalMoney这个字段阿?
GO

程序基本上解释清楚了,你看看吧,还有什么不懂得地方,问我把!