资源描述
数据库系统概论实验报告题目:实验三存储过程/触发器/ODBC编程姓名班级学号日期郭智超100105070526262007-10-14一.实验内容和步骤结果1.在查询分析器中使用系统存储过程(sp_rename)将视图“ V_SPJ更名为“ V_SPJ_E建”。(5分)源程序:create view V_SPJas select jno,snofrom spjwhere jno=j2exec sp_re name V_SPJ,V_SPJ_三建执行结果:-视圜+dbo. syscozistr ait 时 dbo. _SFJ_三逹2. 存储过程的创建与使用:(45分)(1)使用SPJ数据库中的S表、P表、J表、SPJ表,创建一个带参数的存储过程一jsearch该存储过程的作用是:当任意输入一个工程代号时,将返回供应该工程零件的供应商的名称(SNAME和零件的名称(PNAME以及工程的名称(JNAME)源程序: create procedure jsearchjno char(4)as select sn ame,p namej namefrom spj,s,p,jwhere j.jno=jnoand spj.j no=j.jnoand spj.s no=s.s noand spj.p no=p.p no(2) 执行jsearch 存储过程,查询“ J1 ”对应的JNAME,SNAM和PNAME 源程序: exec jsearch J1执行结果:L一二一三三三三三snane pnanej nane12345丰:67益锡锯加須惑民(3) 使用系统存储过程sp_helptext 查看存储过程jsearch的文本信息。源程序:sp_helptext jsearch执行结果:T east1CREATE PKOCEDUBE jsaarch2jno char(4)AS SELECT riamej pnsnie, jnane4FROJf spj, s p, j5where .jno=jn.o6and jno=joq7and spj. sna-s srui8and spj. prto=p. pno0101L/exec jsearch. j 1*/1213f*ext jseaxch*/(4) 使用SPJ数据库中的S表,为其创建一个加密的存储过程一jmsearch。该存储过程的作用是:当执行该存储过程时,将返回北京供应商的所有信息。源程序: create procedure jmsearch with en crypti onas select sno,sn ame,status,city from s where s.city= 北京(5) 执行jmsearch存储过程,查看北京供应商的情况。 源程序: exec jmsearch.执行结果:anostatuscity1S210北京1-S330北京(6)删除jmsearch存储过程。源程序: drop proc jmsearch执行结果:jmsearch被删除。3. 触发器的创建与使用:(40分)(1) 在student数据库中建立一个名为insert_sdept 的INSERT触发器,存储在 S表中。该触发器的作用是:当用户向S表中插入记录时,如果插入的sdept值为CS,IS ,MA以外的值,则提示用户“不能插入记录这样的纪录”,否 则提示“记录插入成功”。触发器创建成功之后,在企业管理器中向S表插入记录,验证触发器是否正常工作。源程序:create trigger in sert_sdepton sfor insertas declare sdept char(2)select sdept=sdeptfrom in sertedif (sdept=CSor sdept=ISor sdept=MA)prin t (记录插入成功!)else prin t(不能插入这样的纪录)beginrollback tranend执行结果:当在企业管理器中插入sdept不是要求的时,无法插入。(2) 为student数据库中的S表创建一个名为dele_s1的DELETE触发器,该触发器的作用是禁止删除 S表中的记录。触发器创建成功之后,在企业管理器中删除 S表中的记录,验证触发器是否正常工作。源程序:Create trigger dele_s1On sin stead of deleteasprint(禁止删除!!)执行结果:s表中的记录无法删除! !(3) 为student数据库中的S表创建一个名为dele_s2的DELETE虫发器,该触发器的作用是禁止删除 S表中的记录时删除 SC表中该学生的选课纪录。触发器创 建成功之后,在企业管理器中删除 S表中的记录,验证触发器是否正常工作(SC 表中的数据被正常删除)。源程序:create trigger dele_s2on sfor deleteasdeletefrom scwhere sno in (select sno from deleted)执行结果:当s表中95001记录被删除时_IGCQ255003日真04女女男135-2-1 IS 10a6-10-4 MA lGas-e-s isSc表中相应记录也被删除。snoenograde27695002304(4) 为student数据库中的S表创建一个名为update_s的UPDATE虫发器,该触发 器的作用是禁止更新 S表中“ sdept ”字段的内容。触发器创建成功之后,在 企业管理器中更新 S表中“ sdept ”字段的内容,验证触发器是否正常工作。 源程序:create trigger update_s on sin stead of update as if update (sdept) print(禁止更新)beginrollback tran end执行结果:s表中开始纪录是:9500395004王 张立1SS5-2-1186-10-4185-6-8ISMAIEF面把张立改为大头,sbirthIzdept19500295003J 950041995-2*1I1980-10-4HAlgsE-e-eis当重新打开(刷新)后,张立并没有更新为大头。E0029500395004晨敏立女女男iges-2-iis1986-10-4MA19S5-6-B(5) 禁用update_s触发器。禁用之后,在企业管理器中更新S表中的sdept ”子段的内容,验证触发器是否还继续正常工作。源程序: alter table s disable trigger update_s执行结果:如上题图,将刘晨的sdept改为MV匚5110snam es sexsLirtLs deplt?GS-2-lMV95003王皺lS&-10-4MA95004张丈135-6-8IS(6) 删除update_s触发器。源程序: drop trigger update_s执行结果:4.0DBC配置以及程序调试:(10分)(1)配置一个ODB(数据源,要求数据源名称:student,其中包含s(学生信息)表。JIInternetGreenBrciwser Weti BrowserOutlook. Express養虽遊的立档(凶Microsoft Office Ward图片收耒2003養的咅乐唐诩QQ狂的电曲企业管饉盟控制面檯SopCt设走程序访问和默认侑连援孙”查询分析器打押机和传且记爭本帮陆和克捋(虫1 PPMatc网絡电视搜索所有程序Q fjsaCL). VJmdow:3.安全中心轴助功琵:唯竝氓务I十划辛吾和看勿谟备工iEnsau:直 占 &Ja 网 Plua-n任爲;e和开牟!睥单刘胡阴制尊谥韵倾匡域和初帧用户DSN超兑临町丈件DSN | 9昵程字 鷗 |炷接誚|关于|石朴系蜒总据鴉:L? qSQL StrYf册除Q)Xtr&tie Saavple Database 2005 Microsoft Access Drive低样倍想为瓦宾装遨曙淋的2碱程序0 诵足嚣賈蟲嚮龜霊S9L Dative Client名称 Microsoft Mierosotl Microsoft Microsoft Microsoft MicrosaQ Mi rrosoft MicrosoftFdxFfo 可F Driver 理 dbf) ODBC for ttraclePKF4.1-O3C Driver (农-db ) Piraios*Tr tibw (*. -ib ) Tixt Driver (*. txt; *. civ) TtxfTrtibir (*. Ixt; * cw) Vi ?nicTro Driverl Euil ? ox?r o_Tre i b&r您想用什么名称来命名數据湧?名薊 Q1): |student您希望如何描述此数据侮想连接哪一于SCL Srr?描述:|玩hianhuw服勞器Q):创建剰SQL Server的新数捂强此向导将帮助建立一于能用于这接SQL Ssrvtr的ODBC数据顋.気成|下一步堪)| 取消 | 帮肋5(2)阅读并运行实验给出的程序,理解ODBC编程,要求简单写出自己对这段程序的理解,并且请给出程序运行结果示例图。I onnr r stE4lL日-1-円订丄尸可g用心 &Jce* Frnsp萨咄0X 卿 *i jL:mc jreiT jut R琢用rg XfC.WTrjgig;,囂.SJS4|M1TA ril *1 r wiiswwtp月户容:密和:SludrlLt换栃筠和:习LiB甸;lihtTdit歐消应I-謝T二.实验中出现的问题以及解决方案 (对于未解决问题请将问题列出来 )1.基本上没有太大问题,就是最后的代码没有看懂。批阅者: 批阅日期:实验成绩:批注:
展开阅读全文