资源描述:
《存储过程-触发器-odbc数据库编程-实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《数据库系统概论》实验报告题目:实验四存储过程/触发器/ODBC数据库编程姓名 班级学号 日期2010-10-25一.实验内容和步骤结果1.使用系统存储过程(sp_rename)将视图“V_SPJ”更名为“V_SPJ_三建”:sp_rename'V_SPJ','V_SPJ_三建'2.存储过程的创建与使用:(共计45分)(1)使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程—jsearch。该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME)和零件的名称(PNAME)以及工程的名称(JNAME)。执行js
2、earch存储过程,查询“J1”对应的信息。(10分)CREATEProcedurejsearch(@SPJ_JNOchar(10))ASBEGINSELECTSNAME,PNAME,JNAMEFROMSPJ,S表,P表,J表WHERE@SPJ_JNO=SPJ.JNOANDSPJ.JNO=J表.JNOANDSPJ.PNO=P表.PNOANDSPJ.SNO=S表.SNOEND;jsearch'J1'(1)创建一个带有输出游标参数的存储过程jsearch2,功能同1),执行jsearch2,查询“J1”对应信息,并且将得到的结果用print语句输出到控制台。(10分)CR
3、EATEPROCEDUREjsearch2(@jnochar(10),@SPJ_CURSORCURSORVARYINGOUTPUT)ASset@SPJ_CURSOR=CURSORFORSELECTJ表.JNAME,P表.PNAME,S表.SNAMEfromS表,P表,J表,SPJwhereSPJ.JNO=@jnoandS表.SNO=SPJ.SNOandJ表.JNO=SPJ.JNOandP表.PNO=SPJ.PNOopen@SPJ_CURSORdeclare@jnamechar(10),@snamechar(10),@pnamechar(10)declare@SPJ_C
4、URSORcursorexecjsearch2'J1',@SPJ_CURSORoutputfetchnextfrom@SPJ_CURSORinto@jname,@pname,@snamewhile(@@FETCH_STATUS=0)beginprint(@jname+@pname+@sname)fetchnextfrom@SPJ_CURSORinto@jname,@pname,@snameendclose@SPJ_CURSORdeallocate@SPJ_CURSORgo(1)使用SPJ数据库中的S表,为其创建一个加密的存储过程—jmsearch。该存储过程的作用是:
5、当执行该存储过程时,将返回北京供应商的所有信息。(10分)createprocjmsearchwithencryptionasselectS表.SNAME,S表.SNO,S表.statusfromS表whereS表.CITY='北京'(2)使用系统存储过程sp_helptext查看存储过程jsearch,jmsearch的文本信息。(5分)execsp_helptextjsearchexecsp_helptextjmsearch(1)执行jmsearch存储过程,查看北京供应商的情况。(5分)execjmsearch(2)删除jmsearch存储过程。(5分)USE[
6、SPJ]GOIFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[jmsearch]')ANDtypein(N'P',N'PC'))DROPPROCEDURE[dbo].[jmsearch]GO3.触发器的创建与使用:(共计30分,每小题5分)(1)在student数据库中建立一个名为insert_s的INSERT触发器,存储在S表中。该触发器的作用是:当用户向S表中插入记录时,如果插入的sdept值为’CS’,’IS’,’MA’以外的值,则提示用户“不能插入记录这样的纪录”,否则提示“记录插
7、入成功”。触发器创建成功之后,向S表插入记录,验证触发器是否正常工作。createtriggerinsert_sonsforinsertasif((selectsdeptfrominserted)in('CS','IS','MA'))beginprint'记录插入成功'endelseprint'不能插入记录这样的纪录'insertintosvalues('95005','曾伟','男','1989/07/03','TS')(1)为student数据库中的S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除S表中的记录。触发器创