bbs论坛数据库设计遇到的问题,哪位大虾来帮忙解答一下?谢谢

来源:互联网 发布:windows打开dos快捷键 编辑:程序博客网 时间:2024/04/30 00:15
用带参数的存储过程实现--------查询某个用户在某个版块的发帖情况(主帖+回帖),并返回发帖数和回帖数-------要求:在没有指定版块名字的情况下显示所有版块的发帖信息,下面是我写的代码:请高手指教一下怎么改
if exists(select * from sysobjects where name='proc_find3')  
drop procedure proc_find3
go
create procedure proc_find3
@username varchar(10),   --用户名
@sname varchar(100),       --版块名称
@sumtopic int output,   --总的发帖数
@sumreply int output    --总的回帖数
as
set nocount on
declare @userid varchar(10),@sid int   --用户编号和版块编号
select @userid=uid from bbsusers where uname=@username
select @sid=sid from bbssection where sname=@sname      --版块编号
if exists(select * from bbstopic where tuid=@userid and tsid=@sid)
begin
select @sumtopic=count(*) from bbstopic where tuid=@userid and tsid=@sid   
print @username+'发表的主帖如下:'
select '发帖时间'=convert(varchar(10),ttime,111),'点击率'=tclickcount,'主题'=ttopic,'内容'=tcontents
from bbstopic where tuid=@userid  
end
else
begin
set @sumtopic=0
print @username+'没有发过主帖。'
end
if exists(select * from bbsreply where ruid=@userid and rsid=@sid)
begin
select @sumreply=count(*) from bbsreply where ruid=@userid and rsid=@sid
print @username+'发表的回帖如下:'
select '回帖时间'=convert(varchar(10),rtime,111),'点击率'=rclickcount,'内容'=rcontents
from bbsreply where ruid=@userid
end
else
begin
set @sumreply=0
print @username+'没有发过回帖。'
end
go
declare @sumtopic int,@sumreply int
exec proc_find3 '可卡因','.NET',@sumtopic output,@sumreply output
select @sumtopic,@sumreply

原创粉丝点击