視圖、存儲過程、觸發器講解


視圖的特點

視圖只是一種邏輯對象,是一種虛擬表,它並不是物理對象,因為視圖不占物理存儲空間,在視圖中被查詢的表稱為視圖的基表,大多數的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表以及被修改的表。

一個觸發器實例:

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








免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM