- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
实验7存储过程和触发器
1.实验目的
(1)掌握通过SQLServer管理平台和Transact-SQL语句CREATEPROCEDURE创建存
储过程的方法和步骤。
(2)掌握使用Transact-SQL语句EXECUTE执行存储过程的方法。
(3)掌握通过SQLServer管理平台和Transact-SQL语句ALTERPROCEDURE修改存储
过程的方法。
(4)掌握通过SQLServer管理平台和Transact-SQL语句DROPPROCEDURE删除存储
过程的方法。
(5)掌握通过SQLServer管理平台和Transact-SQL语句CREATETRIGGER创建触发
器的方法和步骤。
(6)掌握引发触发器的方法。
(7)掌握使用SQLServer管理平台或Transact-SQL语句修改和删除触发器。
(8)掌握事务、命名事务的创建方法,了解不同类型的事务的处理情况。
2.实验内容及步骤
请先附加studentsdb数据库,然后完成以下实验。
(1)在查询设计器中输入以下代码,创建一个利用流控制语句的存储过程
letters_print,该存储过程能够显示个小写字母。
答:
(2)输入以下代码,创建存储过程stu_info,执行时通过输入姓名,可以查询该姓名对
应的学生的各科成绩。
语句:
CREATEPROCEDUREstu_info
@namevarchar(40)=刘卫平--将@name值设为默认值刘卫平
AS
答:
请完善
执行
EXECstu_info
EXECstu_info马东
(3)使用系统存储过程sp_rename将存储过程stu_grade更名为stu_g。
答:
(4)使用grade表。
①创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生
各门课程的平均成绩。
②执行存储过程stu_g_r,输入学号0002。
③显示0002号学生的平均成绩。
语句:
--select*fromgrade
CREATEPROCEDUREstu_g_r
@sidchar(4),
答:
请完善
AS
答:
请完善
执行
DECLARE@pointdecimal(3,1)
EXECstu_g_r0002,@pointoutput
select@point各门课程的平均成绩
(5)使用Transact-SQL语句DROPPROCEDURE删除存储过程stu_g_r。
答:
(6)输入以下代码,复制student_info表命名为stu2,为stu2表创建一个触发器
stu_tr,当stu2表插入一条记录时,为该记录生成一个学号,该学号为学号列数据的最
大值加。
语句:
--复制student_info表命名为stu2
SELECT*INTOstu2FROMstudent_info
GO
--为stu2表创建一个INSERT型触发器stu_tr
CREATETRIGGERstu_tr
ONstu2FORINSERT
AS
DECLARE@maxchar(4)
SET@max=(SELECTMAX(学号)FROMstu2)
SET@max=@max+1
UPDATEstu2SET学号=REPLICATE(0,4-len(@max))+@max--replicate(要重
复的字符,重复的次数)
FROMstu2INNERJOINinsertedonstu2.学号=inserted.学号
select*fromstu2
执行以上代码,查看studentsdb数据库中是否有stu2表,展开stu2,查看其触发器项
中是否有stu_str触发器。
在查询设计器的编辑窗口输入以下代码:
INSERTINTOstu2
文档评论(0)