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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

存儲過程和觸發器管理實驗報告學院: 信息學院 班級: 電子信息工程學號:20091060253 姓名:鄭璇 成績:【實驗目的】1 學習創建存儲過程。2 學習創建管理觸發器。【實驗內容】1.在pubs數據庫中創建存儲過程avg_price,用于求所有出版圖書的平均單價。并通過輸出參數返回該平均單價。要求在創建過程之前要首先判斷該存儲過程是否已經存在,如果存在,則將其刪除。執行存儲過程,打印圖書平均單價。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數據庫中創建存儲過程max_price,根據存儲過程的圖書類型(輸入參數)返回該類圖書的最高單價(輸出參數)。要求在創建過程之前要首先判斷該存儲過程是否已經存在,如果存在,則將其刪除。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執行第三題創建的存儲過程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二觸發器創建一個“學生信息”數據庫,包含“學生基本信息”表、“專業”表和“系”表,各表包含的字段如下。“學生基本信息”表:學號;性別;班級;出生日期;專業編號。“專業”表:專業編號;專業名稱;系編號。“系”表:系編號;系名稱;系簡介。各字段類型按其實際含義自行定義,輸入一些數據,要求數據要有代表性。以下操作要求全部在查詢分析器中完成,保存或記錄實現各題功能的Transcat-SQL語句。1. 在“專業”表上創建一個INSERT觸發器“TRG1”。當發生插入專業表操作時,將顯示插入的記錄。2. 在“專業”表表上創建一個DELETE觸發器“TRG2”。當發生刪除操作時,將給出警告、列出刪除的記錄并撤消刪除。3. 在“專業”表表上創建一個UPDATE觸發器“TRG3”。當發生更新“專業名稱”字段的操作時,給出警告并撤消更新。 if exists(select name from sysobjects where name=trg3 and type=tr)drop trigger trg3gocreate trigger trg3 on 專業for updateas if update(專業名稱)begin print 不允許更新專業名稱!rollback transactionendelseprint 沒有更新專業名稱,不需要觸發器處理goupdate 專業 set 專業名稱=新專業A where 專業名稱=新專業4. 在“學生基本信息”表上創建一個更新觸發器“TRG4”,當發生更新“學號”或“姓名”字段的操作時給出警告,并撤消更新。drop trigger trg4gocreate trigger trg4 on 學生基本信息for updateasif update(學號) or update(姓名)begin print 不允許更新學號或姓名rollback transactionendelseprint沒有更新學號或姓名,不需要觸發器處理goupdate 學生基本信息 set 學號=2002090261 where 學號=2002090161GOupdate 學生基本信息 set 姓名=張三 where 學號=20020901615. 創建一個視圖view1,view1中包含了某班級的學生基本信息的以下字段:學號;姓名;性別;出生日期。現在要通過該視圖向該班級添加新的學生信息,在該視圖上創建一個INSTEAD OF觸發器“TRG5”,使得添加到“學生基本信息”表中的記錄內容完整。create view view1asselect 學號,姓名,性別,出生日期from 學生基本信息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=學號,name=姓名,sex=性別,birth=出生日期 from insertedinsert into 學生基本信息values(num,name,sex,二班,birth,1)goinsert into view1values(2002060153,李梅,0,1

溫馨提示

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

評論

0/150

提交評論