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約束更加複雜的約束上面。觸發...