觸發器 MSSQL常用操作

2021-09-05 18:38:05 字數 1445 閱讀 7858

這裡只打算講解四部分了,也就最簡單、最常用的四部分。

1、觸發器。

定義: 何為觸發器?在sql server裡面也就是對某乙個表的一定的操作,觸發某種條件,從而執行的一段程式。觸發器是乙個特殊的儲存過程。

常見的觸發器有三種:分別應用於insert , update , delete 事件。(sql server 2000定義了新的觸發器,這裡不提)

我為什麼要使用觸發器?比如,這麼兩個表:

create table student( --學生表

studentid int primary key, --學號

.... )

create table borrowrecord( --學生借書記錄表

borrowrecord int identity(1,1), --流水號

studentid int , --學號

borrowdate datetime, --借出時間

returndate datetime, --歸還時間

... )

用到的功能有:

1.如果我更改了學生的學號,我希望他的借書記錄仍然與這個學生相關(也就是同時更改借書記錄表的學號);

2.如果該學生已經畢業,我希望刪除他的學號的同時,也刪除它的借書記錄。

等等。這時候可以用到觸發器。對於1,建立乙個update觸發器:

create trigger trustudent

on student

for update as

if update(studentid)

begin

update borrowrecord

set studentid=i.studentid

from borrowrecord br , deleted d ,inserted i

where br.studentid=d.studentid

end

理解觸發器裡面的兩個臨時的表:deleted , inserted 。注意deleted 與inserted分別表示觸發事件的表「舊的一條記錄」和「新的一條記錄」。

乙個update 的過程可以看作為:生成新的記錄到inserted表,複製舊的記錄到deleted表,然後刪除student記錄並寫入新紀錄。

對於2,建立乙個delete觸發器

create trigger trdstudent

on student

for delete as

delete borrowrecord

from borrowrecord br , delted d

where br.studentid=d.studentid

從這兩個例子我們可以看到了觸發器的關鍵:a.2個臨時的表;b.觸發機制。

這裡我們只講解最簡單的觸發器。複雜的容後說明。

事實上,我不鼓勵使用觸發器。觸發器的初始設計思想,已經被「級聯」所替代.

觸發器 MSSQL常用操作

這裡只打算講解四部分了,也就最簡單 最常用的四部分。1 觸發器。定義 何為觸發器?在 sql server 裡面也就是對某乙個表的一定的操作,觸發某種條件,從而執行的一段程式。觸發器是乙個特殊的儲存過程。常見的觸發器有三種 分別應用於insert update delete 事件。sql serve...

MSSQL手札二 MSSQL的觸發器

觸發器,就是在對錶做dml操作的時候,觸發一些其他的事件,觸發器一般用在check約束更加複雜的約束上面,是一種特殊的儲存過程,不可以被主動呼叫。語法如下 create trigger trigger name on with encryption 如果顯式宣告了 after 觸發器,則也不能使用該...

mysql常用操作 觸發器

觸發器是與表有關的資料庫物件,在滿足定義條件時觸發,並執行觸發器中定義的語句集合。觸發器的這種特性可以協助應用在資料庫端確保資料的完整性。舉個例子,比如你現在有兩個表 使用者表 和 日誌表 當乙個使用者被建立的時候,就需要在日誌表中插入建立的log日誌,如果在不使用觸發器的情況下,你需要編寫程式語言...