一、 实验目的 1. 掌握T-SQL流控制语句。 2. 掌握创建存储过程的方法。 3. 掌握存储过程的执行方法。 4. 掌握存储过程的管理和维护。 5. 理解触发器的用途、类型和工作原理。 6. 掌握利用T-SQL语句创建和维护触发器的方法。 7. 掌握利用SQL Server Management Studio创建、维护触发器的方法。 二、 实验内容(实验过程、代码和结果截图) 1. 创建简单存储过程 创建一个名为stu_pr的存储过程,该存储过程能查询出051班学生的所有资料,包括学生的基本信息、学生的选课信息(含未选课同学的信息)。要求在创建存储过程前请判断该存储过程是否已创建,若已创建则先删除,并给出“已删除!”信息,否则就给出“不存在,可创建!”的信息。 【存储过程】 存储过程是预编译的SQL语句集合,它可以在数据库服务器上执行,可以被看作是数据库中的可重复使用的功能模块。在本实验中,学生需要掌握如何创建、执行、管理和维护存储过程。例如,stu_pr存储过程用于查询051班所有学生的信息,包括基本信息和选课信息。在创建存储过程之前,首先通过T-SQL的`IF EXISTS`语句检查该存储过程是否存在,如果存在则先删除并输出“已删除!”信息,否则输出“不存在,可创建!”的信息。 创建存储过程的语法如下: ```sql CREATE PROCEDURE procedure_name AS BEGIN -- SQL语句 END ``` stu_pr的创建语句: ```sql IF EXISTS (SELECT name FROM sysobjects WHERE name='stu_pr' AND type='p') BEGIN PRINT '已删除!' DROP PROCEDURE stu_pr END ELSE PRINT '不存在,可创建!' GO CREATE PROCEDURE stu_pr AS SELECT * FROM Student LEFT JOIN SC ON Student.Sno = SC.Sno LEFT JOIN Course ON Course.Cno = SC.Cno WHERE Classno = '051' ``` 【带参数的存储过程】 存储过程可以接受输入参数,允许在调用时传递变量。在实验中,stu_proc1和Student_sc就是带参数的例子。stu_proc1接收系名(Sdept)和姓名(Sname)作为参数,默认值为“%”和“林%”,用于查询特定系和姓名的学生信息。而Student_sc存储过程接受学号范围(@Sno1, @Sno2)作为参数,可以查询指定范围内学生的学号、姓名和总成绩。 创建带参数的存储过程语法如下: ```sql CREATE PROCEDURE procedure_name @parameter_name datatype DEFAULT default_value AS BEGIN -- SQL语句 END ``` 例如,stu_proc1的创建语句: ```sql IF EXISTS (SELECT name FROM sysobjects WHERE name='stu_proc1' AND type='p') BEGIN PRINT '已删除!' DROP PROCEDURE stu_proc1 END ELSE PRINT '不存在,可创建!' GO CREATE PROCEDURE stu_proc1 @Sdept CHAR(8) = '%', @Sname VARCHAR(8) = '林%' AS SELECT Sdept, Student.Sno, Sname, DATEDIFF(YEAR, Birth, GETDATE()) AS age, Cname, Grade FROM Student, SC, Course WHERE Student.Sno = SC.Sno AND Course.Cno = SC.Cno AND Sdept LIKE @Sdept AND Sname LIKE @Sname ``` 【触发器】 触发器是一种特殊的存储过程,它在数据库中的特定事件(如INSERT、UPDATE或DELETE操作)发生时自动执行。触发器主要用于实现复杂的业务规则和数据一致性。实验中虽然没有具体涉及触发器的创建,但理解触发器的工作原理和用途是重要的。触发器可以用来确保数据的完整性和一致性,例如,当插入、更新或删除数据时,触发器可以自动检查约束,执行额外的验证或更新关联的数据。 创建触发器的语法如下: ```sql CREATE TRIGGER trigger_name ON table_name FOR|AFTER|INSTEAD OF {INSERT|UPDATE|DELETE} AS BEGIN -- SQL语句 END ``` 例如,一个简单的INSERT触发器可能如下所示: ```sql CREATE TRIGGER trg_InsertExample ON SomeTable AFTER INSERT AS BEGIN -- 在插入操作后执行的逻辑 END ``` 通过这个实验,学生不仅能掌握T-SQL的基本语法,还能深入理解存储过程和触发器在数据库管理中的重要性,以及如何利用它们来实现更复杂的数据操作和管理任务。



















剩余32页未读,继续阅读


- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 公共关系教材、网站讲义教材.ppt
- 计算机教师招聘试题(汇总集合版).doc
- 酒店接口管理方案.docx
- 高等教育信息化中版权的探讨-1.docx
- 电子商务创业计划书(1).doc
- 农村电子商务及物流创意服务方案-新星.doc
- 基于Springboot与vue的儿童关爱督导系统管理后台模块的开发探索.docx
- 大连理工大学2021年9月《电子商务(管理类)》作业考核试题及答案参考20.docx
- 企业信息化情况表介绍.pptx
- 计算机基础第一章.ppt
- [工学]电力系统电压稳定的理论与工程分析及其软件应用孙华东演示教学.ppt
- 《建筑识图、构造与CAD》课程教学改革探索.docx
- 微课在护理专业计算机教学中的应用获奖科研报告论文.docx
- 如何上好第一次公开课?哪个网站有好的课件?.docx
- 关于提升中职学校线上CAD教学质量的思考教研课题论文开题结题中期报告(反思经验交流).docx
- 东华大学计算机学院工程硕士招生宣传培训讲学.ppt


