西工大第四次数据库实验报告.docVIP

  • 4
  • 0
  • 约3.45千字
  • 约 11页
  • 2019-01-01 发布于安徽
  • 举报
. .. 《数据库系统概论》实验报告 题目:实验四 存储过程/触发器/ODBC数据库编程 姓名 ?班级 学号 ?日期 刘凯2012302606 2014.11 实验内容、步骤以及结果 使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”。 sp_rename V_SPJ,V_SPJ_三建 存储过程的创建与使用: 使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。执行jsearch存储过程,查询“J1”对应的信息。 CREATE PROCEDURE jsearch(@SPJ_JNO CHAR(10)) AS BEGIN SELECT SNAME,PNAME,JNAME FROM SPJ,S,P,J WHERE @SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNO END; 创建一个带有输出游标参数的存储过程jsearch2,功能同1),执行jsearch2,查询“J1”对应信息,并且将得到的结果用print语句输出到控制台。 CREATE PROCEDURE jsearch2(@SPJ_JNO CHAR(10),@SPJ_CURSOR CURSOR VARYING OUTPUT) AS SET @SPJ_CURSOR = CURSOR FOR SELECT S.SNAME,P.PNAME,J.JNAME FROM SPJ,S,P,J WHERE @SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNO OPEN @SPJ_cursor jsearch J1 使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。 CREATE PROCEDURE jmsearch WITH ENCRYPTION AS BEGIN SELECT S.SNAME,S.SNO,S.STATUS FROM S WHERE S.CITY=北京 END; BEGIN DECLARE @SNAME char(10) DECLARE @PNAME char(10) DECLARE @JNAME char(10) DECLARE @SPJ_cursor CURSOR EXEC jsearch2 J1,@SPJ_cursor OUTPUT FETCH NEXT FROM @SPJ_cursor INTO @SNAME,@PNAME,@JNAME WHILE (@@FETCH_STATUS = 0) BEGIN PRINT(@SNAME+@PNAME+@JNAME) FETCH NEXT FROM @SPJ_cursor INTO @SNAME,@PNAME,@JNAME END CLOSE @SPJ_cursor DEALLOCATE @SPJ_cursor END GO 使用系统存储过程sp_helptext查看存储过程jsearch, jmsearch的文本信息。 exec sp_helptext jsearch EXEC sp_helptext jmsearch 执行jmsearch存储过程,查看北京供应商的情况。 EXEC jmsearch 删除jmsearch存储过程。 DROP procedure jmsearch 触发器的创建与使用: 在student数据库中建立一个名为insert_s的INSERT触发器,存储在S表中。该触发器的作用是:当用户向S表中插入记录时,如果插入的sdept值为’CS’ ,’IS’ ,’MA’以外的值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插入成功”。触发器创建成功之后,向S表插入记录,验证触发器是否正常工作。 USE Student GO CREATE TRIGGER insert_s ON S FOR INSERT AS IF ((SELECT Sdept FROM INSERTED)IN (CS,IS,MA)) BEGIN PRINT记录数据成功 END ELSE PRINT不能插入记录这样的数据 USE Student GO INSERT INTO S VALUES (20123026

文档评论(0)

1亿VIP精品文档

相关文档