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

我这有个存储过程我刚学不知道什么意思想找一个东西修改不知道在哪修改里边有个money的添加但是我不知道哪有哪个固定的值现在固定的值是1CREATEPROCEDUREMan... 我这有个存储过程 我刚学 不知道 什么意思 想找一个东西修改不知道在哪修改 里边有个 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
有哪位大虾把 从上边到下边的代码 每句话的意思 标一下 小弟不胜感谢
展开
 我来答
_沫沫鱼_
2008-11-13 · TA获得超过282个赞
知道答主
回答量:167
采纳率:0%
帮助的人:148万
展开全部
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
苏州神码物信智能科技
2024-08-22 广告
苏州神码物信智能科技有限公司专注于提供高效、智能的出入管理系统解决方案。该系统集成人脸识别、二维码扫描、RFID等先进技术,实现无接触快速通行,有效提升门禁管理效率与安全性。通过云端平台实时监控与数据分析,助力企业、园区、校园等场所优化管理... 点击进入详情页
本回答由苏州神码物信智能科技提供
百度网友e5d2ff0
2008-11-13 · TA获得超过240个赞
知道小有建树答主
回答量:554
采纳率:0%
帮助的人:475万
展开全部
如果是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
------------------------------------------

这个存储过程不可能独立使用的,你要搞清楚它跟其他的关系才行!否则一头雾水!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kobe7949
2008-11-13 · TA获得超过187个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:116万
展开全部
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

程序基本上解释清楚了,你看看吧,还有什么不懂得地方,问我把!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式