SqlServer觸發器的基礎知識

2022-05-05 15:00:09 字數 1032 閱讀 5082

觸發器的基礎知識:

create trigger tr_name on table/view

[update][,][insert][,][delete]

[with encryption]

as update (col_name)] }

說明:1 tr_name:觸發器名稱

2 on table/view:觸發器所作用的表。乙個觸發器只能作用於乙個表

3 for 和 after:二者同義

4 after 與instead of:sqlserver 2000新增專案

afrer 與 instead of 的區別如下:

after 在觸發事件發生以後才被啟用,只可以建立在表上 

instead of 代替了相應的觸發事件而被執行,既可以建立在表上也可以建立在檢視上

5 insert、update、delete:啟用觸發器的三種操作,可以同時執行,也可選其一

6 if update (col_name):表明所作的操作對指定列是否有影響,有影響則啟用觸發器。此外,因為delete 操作只對行有影響,所以如果使用delete操作就不能用這條語句了(雖然使用也不出錯,但是不能啟用觸發器,沒實際意義)。

7 觸發器執行時用到的兩個特殊表:deleted,inserted

deleted 和 inserted 可以說是一種特殊的臨時表,是在進行啟用觸發器時由系統自動生成的,其結構與觸發器作用的表結構是一樣的,只是存放的資料有差異。

關於 deleted 與 inserted 兩表的資料的差異:

inserted 存放進行 insert 和 update 操作後的資料

deleted 存放進行 delete 和 update 操作前的資料

注意:update 操作相當於先進行 delete 再進行 insert,所以在進行 update 操作時,修改前的資料拷貝一條到 deleted 表中,修改後的資料在存到觸發器作用的表的同時,也同時生成一條拷貝到 insered 表中

故,很多觸發器在進行資料檢測或類似操作時,往往都通過這兩個表來判斷處理,作用很大

SQLSERVER的觸發器

觸發器的定義 觸發器是一種特殊型別的儲存過程,他不同於前面介紹過的一般的儲存過程 在sql內部把觸發器看做是儲存過程但是不能傳遞引數 一般的儲存過程通過儲存過程名稱被直接呼叫,而觸發器主要是通過事件進行觸發而被執行.總的來說,觸發器是一種功能強大的工具,在表中資料發生變化時自動強制執行,觸發器還可以...

sqlserver觸發器複習

create table a a1 int,a2 int create table b b1 int,b2 int insert into a values 1,0 insert into b values 1,0 create trigger tri update a2 a on a for up...

SQL server 之 觸發器

今天對觸發器研究了一下,之前的學習感覺挺朦朧的,今天鼓搗了一天,算是有了一點點了解,把學習的體會記錄了下來。常見的觸發器 觸發器的作用 自動化操作,減少了手動操作以及出錯的機率 現實工作中用的比較少,因為想讓他執行起來效率高很難 一 dml觸發器 insert delete update 不支援se...