《存储过程触发器试验.docx》由会员分享,可在线阅读,更多相关《存储过程触发器试验.docx(9页珍藏版)》请在第一文库网上搜索。
1、实验:存储过程、触发器试验(4学时)一、 实验目的1、熟悉存储过程的创建和使用。2、熟悉触发器的创建和使用。二、 实验内容1、在SQ1ServerManagementStudio中使用命令窗口输入SQ1命令建立存储过程和触发器。2、使用SQ1命令执行建立的存储过程。3、使用SQ1执行一定的语句触发触发器。三、 实验步骤1、在SQ1ServerManagementStudio中,新建存储过程。2、在查询窗口中设计3种:不使用参数的、使用参数的和使用通配符的存储过程。问题:1、建立查找表borrower中所有用户名字的存储过程。2、建立从branch表中返回指定branch_name的branch
2、信息的存储过程。3、建立带有通配符参数的存储过程。要求从borrower表返回些指定用户名的信息,该存储过程对传递的参数进行模式匹配,如果没有参数,则返回所有用户的信息。3、调用存储过程测试是否能正常运行。4、修改存储过程问题:将参考中的usp_getcustomer修改成按指定IOan.number的查找表1oan条目的存储过程,要求从ban表返回一些指定用户名的信息,该存储过程对传递的参数进行模式匹配,如果没有参数,则返回所有用户的信息。5、删除存储过程USP_getcustomer。6、设计3种:由INSERT、UPDATE和DE1ETE操作触发的触发器。7、执行INSERT.UPDAT
3、E和DE1ETE操作测试创建的3种触发器。用SQ1命令窗口创建存储过程打开SQ1ServerManagementStUdio,用鼠标单击”对象资源管理器中banking下的”存储过程“,在窗口的右侧显示当前数据库的所有存储过程,单击鼠标右键,在弹出的快捷菜单上选择新建存储过程 在新打开的SQ1命令窗口中,给出了创建存储过程命令的模板,按照下面的代码修改建立存储过程的命令模板后执行。createprocedureusp_get1oanasse1ect*from1oan; 建立完成后,在对象资源管理器可查看此存储过程 执行存储过程:Executeusp_get1oan;8、用SQ1命令行创建存储过
4、程。单击“新建查询“按钮打开SQ1命令窗口,输入以下代码后执行,立即建立存储过程,该存储过程接受与传递的参数精确匹配的值,从customer表中查找指定姓名的用户信息。createprocedureusp_getcustomernamevarchar(40)se1ect*fromcustomerwherecustomername=name;i行存储过程:executeusp_getcustomerAdams3更改存储过程a1terprocedureusp_get1oannamevarchar(40)=%se1ect*fromaccountwherebranch_name1ikename;4查看
5、存储过程usp_get源代码Executesp_he1ptextusp_get删除usp_getcustomer不0,m81285CSQSeW961为9WHtSJeMB*4U*tW33iJMEZtworfcI,:JAtkefthrwWoriaDWRijBr*r囹Q囹我G2as囹QRk词,-1BJiW性F.J装也存it1物Qdbo.u.gUMcw.2一Eiemrr也 1*a-JUtI _1度且 IawIffiCB5e2CrcS囹口号修囹口安Et3)S-,务教 UMU管理 二Mtf4bcnS*vm 1出SQ1SerF4t触发器:I、语法格式:rimxsqinosQveryK.sqr.尔两QCdro
6、pprocuepaetcusccoeE.Q1QfIZR:M%M*SqUmW备今已或功完咸,。直中已晚功!Mi1r192O0619OM1)rjOMwt66)I3xCO00:00。行chaX*E)MaCD8(E)X1KD口皿ttS却出(2)击,CREATETRIGGERschema_name.trigger_nameONtab1eviewWITH,.nFORIAFTERINSTEADOFINSERTzUPDATE,DE1ETEWITHAPPENDNOTFORREP1ICATIONASsq1_statement;.njEXTERNA1NAMEcreateTRIGGERupdateaccountONd
7、bo.accountforUPDATEASifupdate(branch_name)BEGINSETNOCOUNTON;updatebranchsetbranch_name=i.branch_namefrombranchbr,De1etedd,Insertediwherebr.branch_name=d.branch_nameENDrJ1SQUO.XQuerfi7TMSQ12005QQUCr“6才VSQUOC6QQuy15ROMIsQ12005UXOJer0支寿WcrtT*XGGKf(up1taccount)CK(o)(covnc)forUPPATI18IfupbeMtchbez1t1dzXi
8、xsercad1vtwrbr.branchiwawd.branchnar*EXPrjO91VSai2DO5O11)rj091uX!:-J*1S*ffiCjCMt*6囹UAMrtIXVtar3,B(Jb*JJ1rJeCr美不明TJ/UMW-Z)dso.crt,1I霰曳ttwer二o.t*vh-3心,OUSMner纪d克si1jaum%bSJrw*S同N1w1.顺0cfto.(poatof.gtoanEGtAE一*U!tE口同文同EcBJiUI-S14的以段Urt(M*B,程学复StI,二置引1欧4值5MCeeMerCRXATITOIGOZRreeinderCNCusCOtterXrTtJtUiS
9、EftTM1m1UPDATtBKGIXCaieerroryo4、使用系统存储过程SpJe1p1ext查看触发器正文。sp_he1ptextreminder文MDRc(D询9)HBXJUD口侬Iifi1g电IhMJ“3S9己&6一龄丫心.2牝2/-itwx-Jw*twJMF1Wx6IJAArtrUtrOWfiUU*rH1WU或嘘哀S0OWZt6);*-Z1BdtrC0CCUStomrAFTtRntCM,zz10):SETNOCCCNTcm:DfD二!则-J妁中-.HX#(daCeccar引ttato.Ocooww*01br6chJ场it1在bodoorO0JMnSQiftffi&J*tHSCJ即
10、3acw14的攻我s,恭IKmt夏1出糠,:JciIIfItrU值WQiSeMeBrof军存婚僦必纨行.OOo1SV2CCBcBOm)rJOOKtouQB)3OOoOaOD5、删除触发器droptriggerreminderHiM11iiaai-1江区B IMeaBH * bXACD口6告B岁H-4n 1 HRSi G1.a11.JQ4-, 556-3X!12OO5(&Savw 90JJWnM 15MS 1 *H -1 W5 ffi GC masR Q Ois1Bj*m 10U 93庄。青RHXcis“ 6S9SSM田。弟一 1 0uB. U ?围 U UW97*3上 U &9-ACSI出CaM11V- 1sE1ga1*- U &WP aVOftQ 一 U -? bsme%s,1 *as 1BI ?aTma 1 0sA j1 1 Sss * 1as fB W 1aff 1tUMa SIU ? 1s.匕/?2-CM