1. 程式人生 > >檢視,儲存過程,觸發器

檢視,儲存過程,觸發器

檢視的特點

檢視只是一種邏輯物件,是一種虛擬表,它並不是物理物件,因為檢視不佔物理儲存空間,在檢視中被查詢的表稱為檢視的基表,大多數的select語句都可以用在建立檢視中

優點:集中使用者使用的資料,掩碼資料的複雜性,簡化許可權管理以及為向其他應用程式輸出而重新組織資料等等

語法:  create view view_name [(column[,…n])]

with encryption

as select_statement

with check option

儲存過程的特點

儲存過程是儲存在伺服器上的一組預編譯的Transact-SQL語句,儲存過程是一種封裝重複任務操作的一種方法,支援使用者提供的變數,具有強大的程式設計功能

優點:與其他應用程式共享應用程式的邏輯,因此確保一致的資料訪問和操縱

提供一種安全機制

加速儲存過程的執行,提高系統的效能

減少網路交通

儲存過程的型別:系統儲存過程、本地儲存過程、臨時儲存過程、遠端儲存過程和擴充套件儲存過程。不同型別的儲存過程具有不同的作用

語法: create procedure procedure_name

@parameter data_type

with{recompile|encryption|recompile,encryption}

as sql_statement

執行儲存過程有兩種方法:

方法一:直接執行儲存過程,就是呼叫execute語句來執行儲存過程

方法二:在insert語句中執行儲存過程

觸發器的特點

當有操作影響到觸發器保護的資料時,觸發器就自動發生,因此,觸發器是在特定表上進行定義的,該表也稱為觸發器表,也是一種特殊型別的儲存過程,與儲存過程的區別:儲存過程可以由使用者直接呼叫執行,但是觸發器不能被直接呼叫執行

觸發器的型別:insert型別,update型別,delete型別

語法: create trigger trigger_name

on {table |view}

with encryprion

{for|after|instead of}{[delete][,][insert][,][update]}

as sql _statement

工作原理:

(insert)當向表中插入資料時,insert觸發器觸發執行,當insert觸發器觸發時,新的記錄增加到觸發器表中和inserted表中。觸發器可以檢查inserted表,來確定該觸發器的操作是否應該執行和如何執行,在inserted表中的那些記錄,總是觸發器表中一行或多行記錄的冗餘;

(delete)當觸發一個delete觸發器時,被刪除的記錄房子一個特殊的deleted表中。deleted表是一個邏輯表,用來儲存已經從表中刪除的記錄;

(update)修改一條記錄就等於插入一條新記錄和刪除一條舊記錄,當在某一個update觸發器表的上面修改一條記錄時,表中原來的記錄移動到deleted表中,修改過的記錄插入到了inserted表中,觸發器可以檢查deleted表和inserted表以及被修改的表。

一個觸發器例項:

一般地,開發觸發器的過程包括使用者需求分析,確定觸發器的邏輯結構,編寫觸發器程式碼和測試觸發器