国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

深入淺析SQL Server 觸發器

2020-07-25 12:50:12
字體:
來源:轉載
供稿:網友

觸發器是一種特殊類型的存儲過程,它不同于之前的我們介紹的存儲過程。觸發器主要是通過事件進行觸發被自動調用執行的。而存儲過程可以通過存儲過程的名稱被調用。

Ø 什么是觸發器

    觸發器對表進行插入、更新、刪除的時候會自動執行的特殊存儲過程。觸發器一般用在check約束更加復雜的約束上面。觸發器和普通的存儲過程的區別是:觸發器是當對某一個表進行操作。諸如:update、insert、delete這些操作的時候,系統會自動調用執行該表上對應的觸發器。SQL Server 2005中觸發器可以分為兩類:DML觸發器和DDL觸發器,其中DDL觸發器它們會影響多種數據定義語言語句而激發,這些語句有create、alter、drop語句。

    DML觸發器分為:

    1、 after觸發器(之后觸發)
        a、 insert觸發器
        b、 update觸發器
        c、 delete觸發器
    2、 instead of 觸發器 (之前觸發)

    其中after觸發器要求只有執行某一操作insert、update、delete之后觸發器才被觸發,且只能定義在表上。而instead of觸發器表示并不執行其定義的操作(insert、update、delete)而僅是執行觸發器本身。既可以在表上定義instead of觸發器,也可以在視圖上定義。

    觸發器有兩個特殊的表:插入表(instered表)和刪除表(deleted表)。這兩張是邏輯表也是虛表。有系統在內存中創建者兩張表,不會存儲在數據庫中。而且兩張表的都是只讀的,只能讀取數據而不能修改數據。這兩張表的結果總是與被改觸發器應用的表的結構相同。當觸發器完成工作后,這兩張表就會被刪除。Inserted表的數據是插入或是修改后的數據,而deleted表的數據是更新前的或是刪除的數據。

    Update數據的時候就是先刪除表記錄,然后增加一條記錄。這樣在inserted和deleted表就都有update后的數據記錄了。注意的是:觸發器本身就是一個事務,所以在觸發器里面可以對修改數據進行一些特殊的檢查。如果不滿足可以利用事務回滾,撤銷操作。

Ø 創建觸發器

    語法

create trigger tgr_nameon table_namewith encrypion 

主站蜘蛛池模板:
旬阳县|
自贡市|
舒城县|
贵溪市|
沙田区|
陇南市|
松原市|
云龙县|
周至县|
丰城市|
合水县|
霞浦县|
乌兰县|
宁化县|
苍南县|
集贤县|
中牟县|
永登县|
敖汉旗|
七台河市|
宁蒗|
新巴尔虎左旗|
朝阳区|
辽阳县|
从化市|
哈巴河县|
上杭县|
崇左市|
昂仁县|
青铜峡市|
晋城|
杭锦后旗|
乐平市|
常宁市|
赣州市|
华宁县|
克拉玛依市|
安泽县|
如皋市|
宁陕县|
博白县|