上机实训11 SQL Server 2008之规则、存储过程和触发器
更新时间:2024-05-27 14:22:01 阅读量: 综合文库 文档下载
- 上机实训1:国风视觉效果推荐度:
- 相关推荐
上机实训07存储过程和触发器
学号______________姓名____________
任务描述
启动SQL server 2008,附加数据库xscjglDB,执行相应的操作。 任务描述
对数据库xscjglDB中的表设置相关的规则。
设计过程
1. 创建成绩的规则(0分-100分)
CREATE RULE cj_rule AS @cj BETWEEN 0 and 100
2.将cj_rule规则绑定到成绩信息表的成绩字段上:
EXECsp_bindrule'cj_rule','成绩信息表.成绩'
3.创建性别的规则,并绑定到学生信息表的性别列上。
Createrule xb_rule As @xb='男' or @xb='女' Go
Exec sp_bindrule 'xb_rule','学生信息表.性别'
4.将cj_rule规则删除
第一步:要解除绑定到成绩信息表的成绩列上的规则,可以使用下面SQL语句: EXEC sp_unbindrule'成绩信息表.成绩'
第二步:解除规则的绑定后,就可以使用DROP RULE语句删除,其语法格式如下: DROP RULE cj_rule
任务描述
对数据库xscjglDB中创建的使用存储过程。
设计过程
1. 简单的存储过程proxs_list,用于显示学生信息:
USE xscjgldb go
CREATEPROCEDURE proxs_list AS
SELECT 学号,姓名,性别FROM 学生信息表 go
exec proxs_list
成果展示(裁图):
2.下面的SQL语句创建一个存储过程xspjcj,当输入学生姓名时,显示学生的各科的平均成绩。
USE xscjglDB go
create proc xspjcj
@xmchar(10) as
select AVG(成绩) from 学生信息表,成绩信息表
where 学生信息表.学号=成绩信息表.学号 and 学生信息表.姓名=@xm go
exec xspjcj‘郭俊’
成果展示(裁图):
3.下面的SQL语句创建了一个用于向班级信息表中插入记录的存储过程
USE xscjglDB GO
CREATE PROC pro_Addbj (@bjh nvarchar(255), @bjm nvarchar(255), @zy nvarchar(255), @yj float,
@tea varchar(255)) AS
INSERT INTO 班级信息表
VALUES(@bjh,@bjm,@zy,@yj,@tea) GO
EXEC pro_Addbj 'bj1501','计算机班1501班','计算机网络',2015,'tc002' Go
Select * from 班级信息表
成果展示(裁图):
任务描述
对数据库xscjglDB中创建的使用触发器。
设计过程
1.下面创建的tri_Checkcj触发器可用来检查插入的成绩是否在0~100之间:
USE xscjglDB GO
CREATE TRIGGER tri_Checkcj ON 成绩信息表 FOR INSERT AS
DECLARE @cj int
SELECT @cj=成绩 FROM inserted --临时表取数 IF @cj<0 OR @cj>100 BEGIN
ROLLBACK --取消原来操作
RAISERROR('成绩必须在0~100之间!',16,1) --提示错误 END GO
如果此时插入一笔记录:
INSERT成绩信息表VALUES(‘2005010101’, ‘kc1101’, 120,1) 错误展示(裁图):
2.创建的delete触发器,实现删除学生信息时,自动删除成绩信息。
CREATETRIGGERtri_Delete ON学生信息表FORDELETE AS
DELETE成绩信息表WHERE成绩信息表.学号='deleted.学号' GO
------------------------------------------------
执行以下命令:
Delete from 学生信息表 where 学号=’ st1111010101’ 成果展示(裁图):
3.创建触发器,在成绩信息表中插入记录时,如果学号不存在,拒绝插入操作。
CREATETRIGGERtri_cjadd ON成绩信息表FORinsert AS
declare@xhnchar(30) select@xh=学号frominserted
If (selectCOUNT(*)from学生信息表where学生信息表.学号=@xh)<1
Begin
Rollbacktransaction
Raiserror('学号不存在,请重新输入!',16,10) end
------------------------------------------------
执行以下命令:
insert成绩信息表values('asdfas','asdfsadf',78,'1')
错误展示(裁图):
3.删除触发器。
Drop TRIGGERtri_Delete
正在阅读:
上机实训11 SQL Server 2008之规则、存储过程和触发器05-27
电功和电功率检测题(含答案)05-04
机采棉研讨03-14
现代中国中产阶级与品牌消费05-31
游泳馆项目可行性研究报告06-25
WINDOWS XP基础教程09-06
英语四级词根词缀大全04-25
信号的采样与重建11-27
VB复习提纲 - 图文12-18
抢橡皮游戏作文200字06-24
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 触发器
- 上机
- 规则
- 存储
- 过程
- Server
- 2008
- SQL