上机实训11 SQL Server 2008之规则、存储过程和触发器

2019-04-22 17:01

上机实训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之规则、存储过程和触发器.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“中央高校基本科研业务费专项资金” 资助项目结题报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: