SQL SERVER 2008 建立觸發器

2021-06-30 16:40:09 字數 1539 閱讀 1262

sqlserver觸發器內insert,update,delete三種狀態

create   trigger   tri_product_ordersnapshot   on     [t_product]   for   insert,update,delete         

如if   exists   (select   *   from   inserted)   and   not   exists   (select   *   from   deleted)   則為   insert   

如if   exists(select   *   from   inserted   )   and   exists   (select   *   from   deleted)   則為   update   

如if   exists   (select   *   from   deleted)   and   not   exists   (select   *   from   inserted)則為   delete  

插入操作(insert):inserted表有資料,deleted表無資料 

刪除操作(delete):inserted表無資料,deleted表有資料 

更新操作(update):inserted表有資料(新資料),deleted表有資料(舊資料)

1.插入觸發器例項

表1 (id,name)

表2 (id,name)

當使用者插入表1資料後,表2也被插入相同的資料

create trigger tri1

on 表1

for insert

asbegin

insert into 表2 select * from inserted

endgo

2.修改觸發器

表1 (id,name)

表2 (id,name)

當使用者更改表1 name列資料後,表2相應id的資料也同時更新

create trigger tri3

on 表1

for update

asif update(name)

begin

update 表2

set a.name = b.name

from 表2 a, inserted b

where a.id = b.id

endgo

3.刪除觸發器

表1 (id,name)

表2 (id,age,gender)

當使用者刪除表1某條id的資料後,表2相應id的資料也被刪除

create trigger tri2

on 表1

for delete

asbegin

declare @id int

select @id from deleted

delete 表2

where id = @id

endgo

SQL server2008獲取建立表裡各列的屬性

select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.value,else end,字段序號 a.colorder,欄位名 a.name,標識 case when ...

sqlserver2008 建立定時任務

sql2008如何建立定時作業?此方法也適應於sql server2005資料庫,有興趣的可以來看下!1.開啟 sql server management studio 在 物件資源管理器 列表中選擇 sql server 2.滑鼠右擊 sql server 選擇 啟動 s 如已啟動,可以省略此步驟...

SQL server 2008建立觸發器例項

觸發器定義以及分類 觸發器是一種特殊型別的儲存過程,它不同於之前的我們介紹的儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。什麼是觸發器 觸發器對錶進行插入 更新 刪除的時候會自動執行的特殊儲存過程。觸發器一般用在check約束更加複雜的約束上面。觸發...