- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 存储过程 相关回顾 T-SQL创建文件夹 带参数的存储过程 不带参数存储过程 上机目标 使用存储过程实现: 查看某个用户的发贴和回贴情况 获取用户的发贴数和回贴数 查看指定贴子的回贴及数量 教员讲解上机目标 训练技能点 存储过程的应用 阶段1 训练要点: 存储过程在数据库中的应用 需求说明: 查看用户表的约束、索引信息,并在D:\ project下创建子文件夹test 讲解需求说明 实现思路及关键代码: 查看表的约束、索引等,可调用相关的系统存储过程;创建文件夹,并查看某个文件夹下的文件,可调用xp_cmdshell扩展存储过程 阶段1 讲解实现思路和关键代码 EXEC sp_helpconstraint bbsUsers --查看表stuInfo的约束 EXEC sp_helpindex bbsUsers --查看表stuMarks的索引 USE master GO EXEC xp_cmdshell mkdir D:\project\test, NO_OUTPUT --在D:\project\下创建文件夹test EXEC xp_cmdshell dir D:\project\ --查看文件夹 GO 结果查看: 单击菜单:“工具”→“选项”,将查询结果切换为网格方式 阶段1 完成时间:15分钟 阶段2 训练要点: 创建带参数的存储过程 需求说明: 在进行论坛的奖项评选或调查某个用户发表的言论情况,都需要经常查找某个用户的发贴情况(发主贴和回贴)。请编写存储过程proc_find1,实现查找某个用户(假定为可卡因)的发贴情况 讲解需求说明 阶段2 IF EXISTS (SELECT * FROM sysobjects WHERE name = proc_find1 ) DROP PROCEDURE proc_find1 GO CREATE PROCEDURE proc_find1 @userName varchar(10) --输入参数用户名 AS SET NOCOUNT ON DECLARE @userID varchar(10) SELECT @userID=UID FROM bbsUsers WHERE Uname=@userName IF EXISTS(SELECT * FROM bbsTopic WHERE TuID=@userID) 讲解实现思路和关键代码 需求思路及关键代码: 查询某个用户的发贴情况,显然在创建存储过程时需要将用户作 为输入参数,调用时指定具体的用户 完成时间:25分钟 BEGIN print @userName+发表的主贴如下: SELECT 发贴时间=convert(varchar(10),Ttime,111),点击率=TclickCount, 主题=Ttopic,内容=Tcontents FROM bbsTopic WHERE TuID=@userID END ELSE print @userName+没有发表过主贴。 IF EXISTS(SELECT * FROM bbsReply WHERE RuID=@userID) BEGIN print @userName+发表的回贴如下: SELECT 回贴时间=convert(varchar(10),Rtime,111), 点击率=RclickCount,回贴内容=Rcontents FROM bbsReply WHERE RuID=@userID END ELSE print @userName+没有发表过回贴。 GO EXEC proc_find1 可卡因 阶段3 完成时间:20分钟 需求说明: 编写存储过程proc_find2,查找某个用户的发贴情况,并返回发贴数和回贴数 共性问题讲解 常见调试问题及解决办法 代码规范问题 共性问题集中讲解 阶段4 需求说明: 请修改上述的阶段3,要求创建存储过程proc_find3,查询某个用户在某个版块的发贴情况(主贴+回贴),并返回发贴数和主贴数。如果调用者没指定具体的版块,则默认为所有版块 编写存储过程proc_findReply,查询某个主贴的所有回贴,并返回回贴的数量
文档评论(0)