1 / 11
文档名称:

数据库实验6触发器实验报告.doc

格式:doc   大小:42KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数据库实验6触发器实验报告.doc

上传人:xd3225 2022/2/23 文件大小:42 KB

下载得到文件列表

数据库实验6触发器实验报告.doc

文档介绍

文档介绍:.
10 / 11
下载可编辑
淮海工学院计算机工程学院
实验报告书
课程名: 《数据库原理及应用》
题 目: 存储过程和触发器
班 级: 软件132
学 号: 2013122907
姓 名: 孙莹
DROP PROCEDURE Delworker
4 / 11
下载可编辑
.
GO

USE factory
GO
IF EXISTS <SELECT name FROM sysobjects
WHERE type='TR' AND name='depart_update'>
DROP TRIGGER depart_update
GO
CREATE TRIGGER depart_update ON depart
AFTER UPDATE
AS
DECLARE ***@olddepno int,***@newdepno int
SELECT ***@olddepno=部门号FROM deleted
SELECT ***@newdepno=部门号FROM inserted
UPDATE worker
SET 部门号=***@newdepno
WHERE 部门号=***@olddepno
GO
执行下列语句,可验证存储过程的正确性:
USE factory
GO
PRINT '将部门号改为'
UPDATE depart
5 / 11
下载可编辑
.
SET 部门号=105
WHERE 部门号=101
GO
SELECT 职工号,姓名,部门号FROM worker
GO
PRINT '将部门号改为'
UPDATE depart
SET 部门号=101
WHERE 部门号=105
GO
SELECT 职工号,姓名,部门号FROM worker
GO

USE factory
GO
IFEXISTS<SELECTnameFROM sysobjects
WHEREtype='TR'ANDname='worker_delete'>
DROPTRIGGER worker_delete
GO
CREATETRIGGER worker_delete ON worker
FORDELETE
AS
DECLARE ***@no int
6 / 11
下载可编辑
.
SELECT ***@no=职工号FROM deleted
DELETEFROM salary
WHERE 职工号=***@no
GO
执行下列语句,可验证存储过程的正确性:
USE factory
GO
PRINT'删除前的工资记录'
SELECT*FROM salary
GO
DELETEFROM worker
WHERE 职工号=15
GO
PRINT'删除职工号为的职工记录后的工资记录'
SELECT*FROM salary
GO

USE factory
GO
DROPTRIGGER depart_update
GO

7 / 11
下载可编辑
.
USE factory
GO
DROPTRIGGER worker_delete
GO
测试数据与实验结果
第1题图
第2题图
第3题图
第5题图
第6题图
五.结果分析与实验体会
CREATE PROCEDURE语句允许创建、编译并在MS-SQL Server上保存存储过程。在默认情况下,只有数据库拥有者〔DBO具有对数据库的CREATE PROCEDURE访问权。但是,DBO可执行以下形式的GRANT语句向由语句中的<username>所标识的用户ID授予CREATE PROCEDURE访问权:
GRANT CREATE PROCEDURE <username>
CREATE PROCEDURE语句的句法如下:
CREATE PROCEDURE <procedure name> [;<version number>]
[{@<parameter name><data type> [VARYING]
[=<default value>] [OUTPUT]
[…,n]}]
[WITH {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
[FOR REPLICA