存儲過程和觸發(fā)器.doc_第1頁
存儲過程和觸發(fā)器.doc_第2頁
存儲過程和觸發(fā)器.doc_第3頁
存儲過程和觸發(fā)器.doc_第4頁
存儲過程和觸發(fā)器.doc_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

存儲過程和觸發(fā)器管理實驗報告學(xué)院: 信息學(xué)院 班級: 電子信息工程學(xué)號:20091060253 姓名:鄭璇 成績:【實驗?zāi)康摹? 學(xué)習(xí)創(chuàng)建存儲過程。2 學(xué)習(xí)創(chuàng)建管理觸發(fā)器。【實驗內(nèi)容】1.在pubs數(shù)據(jù)庫中創(chuàng)建存儲過程avg_price,用于求所有出版圖書的平均單價。并通過輸出參數(shù)返回該平均單價。要求在創(chuàng)建過程之前要首先判斷該存儲過程是否已經(jīng)存在,如果存在,則將其刪除。執(zhí)行存儲過程,打印圖書平均單價。if exists (select name from sysobjectswhere name=avg_price and type=p)drop procedure avg_pricegocreate procedure avg_priceavgprice float outputasselect avgprice=avg(price) from titlesgodeclare avgprice floatexec avg_price avgprice outputprint avgprice3在pubs數(shù)據(jù)庫中創(chuàng)建存儲過程max_price,根據(jù)存儲過程的圖書類型(輸入?yún)?shù))返回該類圖書的最高單價(輸出參數(shù))。要求在創(chuàng)建過程之前要首先判斷該存儲過程是否已經(jīng)存在,如果存在,則將其刪除。if exists(select name from sysobjects where name=max_price and type=p)drop procedure max_pricegocreate procedure max_pricetype char(50),max float outputas select max=max(price) from titles where type=typego4執(zhí)行第三題創(chuàng)建的存儲過程max_price,指定圖書類型為“mod_cook”,打印該類型圖書的最高單價。declare max float exec max_pricemod_cook,max outputprint max5刪除存儲過程avg_price,max_price。drop procedure avg_pricedrop procedure max_price二觸發(fā)器創(chuàng)建一個“學(xué)生信息”數(shù)據(jù)庫,包含“學(xué)生基本信息”表、“專業(yè)”表和“系”表,各表包含的字段如下?!皩W(xué)生基本信息”表:學(xué)號;性別;班級;出生日期;專業(yè)編號?!皩I(yè)”表:專業(yè)編號;專業(yè)名稱;系編號?!跋怠北恚合稻幪?;系名稱;系簡介。各字段類型按其實際含義自行定義,輸入一些數(shù)據(jù),要求數(shù)據(jù)要有代表性。以下操作要求全部在查詢分析器中完成,保存或記錄實現(xiàn)各題功能的Transcat-SQL語句。1. 在“專業(yè)”表上創(chuàng)建一個INSERT觸發(fā)器“TRG1”。當(dāng)發(fā)生插入專業(yè)表操作時,將顯示插入的記錄。2. 在“專業(yè)”表表上創(chuàng)建一個DELETE觸發(fā)器“TRG2”。當(dāng)發(fā)生刪除操作時,將給出警告、列出刪除的記錄并撤消刪除。3. 在“專業(yè)”表表上創(chuàng)建一個UPDATE觸發(fā)器“TRG3”。當(dāng)發(fā)生更新“專業(yè)名稱”字段的操作時,給出警告并撤消更新。 if exists(select name from sysobjects where name=trg3 and type=tr)drop trigger trg3gocreate trigger trg3 on 專業(yè)for updateas if update(專業(yè)名稱)begin print 不允許更新專業(yè)名稱!rollback transactionendelseprint 沒有更新專業(yè)名稱,不需要觸發(fā)器處理goupdate 專業(yè) set 專業(yè)名稱=新專業(yè)A where 專業(yè)名稱=新專業(yè)4. 在“學(xué)生基本信息”表上創(chuàng)建一個更新觸發(fā)器“TRG4”,當(dāng)發(fā)生更新“學(xué)號”或“姓名”字段的操作時給出警告,并撤消更新。drop trigger trg4gocreate trigger trg4 on 學(xué)生基本信息for updateasif update(學(xué)號) or update(姓名)begin print 不允許更新學(xué)號或姓名rollback transactionendelseprint沒有更新學(xué)號或姓名,不需要觸發(fā)器處理goupdate 學(xué)生基本信息 set 學(xué)號=2002090261 where 學(xué)號=2002090161GOupdate 學(xué)生基本信息 set 姓名=張三 where 學(xué)號=20020901615. 創(chuàng)建一個視圖view1,view1中包含了某班級的學(xué)生基本信息的以下字段:學(xué)號;姓名;性別;出生日期。現(xiàn)在要通過該視圖向該班級添加新的學(xué)生信息,在該視圖上創(chuàng)建一個INSTEAD OF觸發(fā)器“TRG5”,使得添加到“學(xué)生基本信息”表中的記錄內(nèi)容完整。create view view1asselect 學(xué)號,姓名,性別,出生日期from 學(xué)生基本信息goif exists(select name from sysobjectswhere name=trg5and type=tr)drop trigger trg5gocreate trigger trg5 on view1instead of insertasdeclare num char(11)declare name char(10)declare sex bitdeclare birth datetimeselect num=學(xué)號,name=姓名,sex=性別,birth=出生日期 from insertedinsert into 學(xué)生基本信息values(num,name,sex,二班,birth,1)goinsert into view1values(2002060153,李梅,0,1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論