注意 對 inserted,deleted 的查詢 使用
-------------------------
--當person表 新增 一條person記錄時
--將 該記錄的主鍵personname 儲存在changetable表中
use testdb
if exists (select name from sysobjects
where name = 'personinsert' and type = 'tr')
drop trigger personinsert
gocreate trigger personinsert
on person
for insert
asinsert into testdb.dbo.changetable
(changetablename, changetype, changetablepk, changetablepkvalue)
select 'person','insert','personname',personname from inserted
go--當person表 修改 一條person記錄時
--將 該記錄的主鍵personname 儲存在changetable表中
use testdb
if exists (select name from sysobjects
where name = 'personupdate' and type = 'tr')
drop trigger personupdate
gocreate trigger personupdate
on person
for update
asinsert into testdb.dbo.changetable
(changetablename, changetype, changetablepk, changetablepkvalue)
select 'person','update','personname',personname from inserted
go--當person表 刪除 一條person記錄時
--將 該記錄的主鍵personname 儲存在changetable表中
use testdb
if exists (select name from sysobjects
where name = 'persondelete' and type = 'tr')
drop trigger persondelete
gocreate trigger personupdate
on person
for delete
asinsert into testdb.dbo.changetable
(changetablename, changetype, changetablepk, changetablepkvalue)
select 'person','delete','personname',personname from deleted
go
sql server中觸發器
觸發器是一種特殊型別的儲存過程,它不同於之前的我們介紹的儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。什麼是觸發器 觸發器對錶進行插入 更新 刪除的時候會自動執行的特殊儲存過程。觸發器一般用在check約束更加複雜的約束上面。觸發器和普通的儲存過程的...
SQL Server中的觸發器
去年接觸觸發器的時候一頭霧水,現在也算有了個大概的了解。就像的自考一樣,學習真的是乙個需要反覆的過程,從陌生到熟悉這是乙個過程。一 基本概念 觸發器是一種特殊型別的儲存過程,它不同於普通的儲存過程。觸發器主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名稱而被直接呼叫。當往某乙個 中插入...
sql server觸發器的簡單使用
sql server觸發器用到的兩個邏輯表 deleted和inserted分別代表操作所變更的舊記錄集和操作所產生的新記錄集。其中 執行insert操作後deleted邏輯表為空,inserted邏輯表有資料 執行delete操作後inserted邏輯表為空,deleted邏輯表有資料 執行upd...