数据库实验6触发器实验报告.docx
文本预览下载声明
淮海工学院计算机工程学院实验报告书课程名: 《数据库原理及应用》 题 目: 存储过程和触发器 班 级: 软件132 学 号: 2013122907 姓 名: 孙莹莹 目的与要求掌握存储过程的创建方法;掌握存储过程的执行、修改和删除等操作;掌握触发器的创建方法;掌握触发器的使用、修改和删除等相关内容实验内容基于前面建立的factory数据库,使用T-SQL语句完成如下各小题的功能:创建一个为worker表添加职工记录的存储过程Addworker;创建一个存储过程Delworker删除worker表中指定职工号的记录。显示存储过程Delworker;删除存储过程Addworker和Delworker.实验步骤1 .(1)建立存储过程USE factoryGOCREATE PROCEDURE Addworker @no int=NULL, @name char(10)=NULL, @sex char(2)=NULL, @birthday datetime=NULL, @na char(2)=NULL, @wtime datetime=NULL, @depno int=NULLASIF @no IS NULL OR @name IS NULL OR @sex IS NULL OR @birthday IS NULL OR @depno IS NULLBEGIN PRINT 请重新输入该职工信息! PRINT 你必须提供职工号、姓名、性别、出生日期、部门号 RETURNENDBEGIN TRANSACTION INSERT INTO worker VALUES(@no,@name,@sex,@birthday,@na,@wtime,@depno) IF @@error0 BEGIN ROLLBACK TRAN RETURN ENDCOMMIT TRANSACTIONPRINT 职工+@name+的信息成功添加到表worker中(2)验证存储过程USE factoryGOAddworker 20,陈立,女,55/03/08,否,75/10/10,4GOSELECT 职工号,姓名,性别,党员否 FROM workerGO2.(1)建立存储程序USE factoryGOCREATE PROCEDURE Delworker @no int=NULLASIF @no IS NULLBEGIN PRINT 必须输入职工号! RETURNENDBEGIN TRANSACTION DELETE FROM worker WHERE 职工号=@no IF @@error0 BEGIN ROLLBACK TRAN RETURN ENDCOMMIT TRANSACTIONPRINT 成功删除职工号为+CAST(@no AS CHAR(2))+的职工记录执行下列语句,可验证存储过程的正确性:USE factoryGODelworker 20GOSELECT 职工号,姓名,性别,党员否 FROM workerGO3.USE factoryGOEXEC sp_helptext DelworkerGO4.USE factoryGOIF EXISTS (SELECT name FROM sysobjects WHERE name = Addworker AND type =P) DROP PROCEDURE AddworkerGOIF EXISTS (SELECT name FROM sysobjects WHERE name = Delworker AND type =P) DROP PROCEDURE DelworkerGO5.建立触发器depart_update的程序如下:USE factoryGOIF EXISTS (SELECT name FROM sysobjects WHERE type=TR AND name=depart_update) DROP TRIGGER depart_updateGOCREATE TRIGGER depart_update ON depart AFTER UPDATE AS DECLARE @olddepno int,@newdepno int SELECT @olddepno=部门号FROM deleted SELECT @newdepno=部门号FROM insertedUPDATE worker SET 部门号=@newdepnoWHERE 部门号=@olddepnoGO执行下列语句,可验证存储过程的正确性:USE factoryGOPRINT 将部门号改为UPDATE departSET 部门号=105WHERE 部门号=101GOSELECT 职工号,姓名,部门号FROM w
显示全部