SQLServer觸發(fā)器使用實例_第1頁
SQLServer觸發(fā)器使用實例_第2頁
SQLServer觸發(fā)器使用實例_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

1、SQLServer觸發(fā)器使用實例觸發(fā)器是一個特殊的存儲過程。常見的有三種:分別應用于Insert,Update,Delete事件。一、Trigger語法:createtriggertr_nameontable/viewfor|after|insteadofupdate,insert,deletewithencryptionasbatch|ifupdate(col_name)and|orupdate(col_name)說明:tr_name:名稱ontable/view:觸發(fā)器所作用的表。一個觸發(fā)器只能作用于一個表for和after:同義after與insteadof:sql2000新增項目afr

2、er與insteadof的區(qū)別After在觸發(fā)事件發(fā)生以后才被激活,只可以建立在表上Insteadof代替了相應的觸發(fā)事件而被執(zhí)行,既可以建立在表上也可以建立在視圖上insert、update、delete:激活觸發(fā)器的三種操作,可以同時執(zhí)行,也可選其一ifupdate(col_name):表明所作的操作對指定列是否有影響,有影響,則激活觸發(fā)器。此外,因為delete操作只對行有影響,所以如果使用delete操作就不能用這條語句了(雖然使用也不出錯,但是不能激活觸發(fā)器,沒意義)。7觸發(fā)器執(zhí)行時用到的兩個特殊表:deleted,inserteddeleted和inserted可以說是一種特殊的臨

3、時表,是在進行激活觸發(fā)器時由系統(tǒng)白動生成的,其結構與觸發(fā)器作用的表結構是一樣的,只是存放的數(shù)據(jù)有差異。二、實例:實例1(注意這里的關聯(lián),條件是如何關聯(lián),update中set的值是與誰關聯(lián)。這些都可以從【觸發(fā)器的兩個臨時表:inserteddeleted中得到答案)比如,這么兩個表:CreateTableStudent(孝生表StudentIDintprimarykey,年號StudentNamevarchar(50)姓名)CreateTableBorrowRecord(-*生借書記錄表BorrowRecordintidentity(1,1),-流水號StudentIDint,-學號Borrow

4、Datedatetime,-借出時間ReturnDAteDatetime,-歸還時間.)用到的功能有:如果我更改了學生的學號,我希望他的借書記錄仍然與這個學生相關(也就是同時更改借書記錄表的學號);如果該學生已經(jīng)畢業(yè),我希望刪除他的學號的同時,也刪除它的借書記錄。等等。這時候可以用到觸發(fā)器。對于1,創(chuàng)建一個Update觸發(fā)器:CreateTriggertruStudentOnStudent-作Student表中創(chuàng)建觸發(fā)器forUpdate-為什么事件觸發(fā)As-事件觸發(fā)后所要做的事情ifUpdate(StudentID)beginUpdateBorrowRecordSetStudentID=i.

5、StudentIDFromBorrowRecordbr,Deletedd,Insertedi-Deleted和Inserted臨時表Wherebr.StudentID=d.StudentIDend理解觸發(fā)器里面的兩個臨時的表:Deleted,Inserted。注意Deleted與Inserted分別表示觸發(fā)事件的表舊的一條記錄”和新的一條記錄”。一個數(shù)據(jù)庫系統(tǒng)中有兩個虛擬表用于存儲在表中記錄改動的信息,分別是:|虛擬表Inserted|虛擬表Deleted在表記錄新增時|存放新增的記錄|不存儲記錄修改時|存放用來更新的新記錄|存放更新前的記錄刪除時|不存儲記錄|存放被刪除的記錄一個Update的過程可以看作為:生成新的記錄到Inserted表,復制舊的記錄到Deleted表,然后刪除Student記錄并寫入新紀錄。對于2,創(chuàng)建一個Delete觸發(fā)器CreatetriggertrdStudentOnStudentforDeleteAsDeleteBorrowRecordFromBorrowRecordbr,Deltedd對于3,創(chuàng)建一個Insert觸發(fā)器createTriggertestdbonmyStudentforinsertasbegininsertintoBorrowRecord(Studen

溫馨提示

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

評論

0/150

提交評論