視圖的特點
視圖只是一種邏輯對象,是一種虛擬表,它並不是物理對象,因為視圖不占物理存儲空間,在視圖中被查詢的表稱為視圖的基表,大多數的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表以及被修改的表。
一個觸發器實例:
一般地,開發觸發器的過程包括用戶需求分析,確定觸發器的邏輯結構,編寫觸發器代碼和測試觸發器