SQL 高手帮帮我。。

来源:百度知道 编辑:UC知道 时间:2024/06/07 08:21:04
USE stuDB
GO
IF EXISTS (SELECT * FROM sysobjects WHERE name='proc_cc')
DROP PROCEDURE proc_cc
GO
CREATE PROCEDURE proc_cc
@name varchar(15), --用来保存用户名
@topic varchar(20), --用来保存用户回复的主题
@rconten varchar(30), --回复的正文
@id INT=0, --用来保存用户名的ID值
@idd INT=0 , --用来保存当前回复主贴的ID号
@odd INT=0 --用来保存帖子的板块编号

AS
SELECT @id=UID FROM bbsUsers WHERE Uname like '@name'
--假定“可卡因” 回复主贴:“什么是.Net啊?”, 笑呵呵地回复道:“.Net是微软力推得企业级信息网络共享平台。”
SELECT @idd=TID,@odd=TsID FROM bbsTopic WHERE Ttopic like '@topic' --找到帖子ID
INSERT INTO bbsReply(RtID,RsID,RuID,Rcontents) VALUES (@id,@idd,@odd,@rconten)
IF (@@ERROR=0)
BEGIN
UPDATE bbsTopic SET TreplyCount=TreplyCount+1, TclickCount=TclickCount+1 WHERE TID=@idd --用户回帖后,需要更新对应主贴的信息:回复数量+1,点击率+1。
UPDATE bbsSection SET SclickCount=SclickCount+1 WHERE SID=@odd --用户回帖后,还需要更新对应板块的点击率,点击率+1。

有可能是你的表名不叫bbsUsers,
也有可能是你的这句话有误

SELECT @id=UID FROM bbsUsers WHERE Uname like '@name'
应该是这个地方出了问题 仔细检查一下表

程序是一行一行往下执行的,当前面碰到错误后面的就不执行了
所以并不是就这里的bbsUsers无效 后面的也一样