Sql server--觸發器

1 觸發器的概念
sql

        觸發器是⼀一類特殊的存儲過程,其特殊性在於它 並不須要由⽤用戶來直接調⽤用,⽽而是在對錶或視圖發出 Insert UpdateDelete語句時⾃自動觸發執⾏行的。所以,可將觸發器當作是信息的後過濾器。加密

        使⽤用觸發器主要會利⽤用到兩張很重要的邏輯表:deleted表和inserted表。這兩張邏輯表有系統建立,並存在內存中。也稱爲虛 擬表。是隻讀的、不可修改的。當觸發器執⾏行完畢後,將會被刪 除。這兩張表存放了⽤用戶對錶的操做數據。 spa


格式:
code

Create trigger 觸發器名稱 
On 表名 With encryption
For insert,Update,delete
As
Sql語句
Go

insert觸發器內存

任務:在Users表中建立名爲tr_user1的觸發器,要求當 添加⼀一個新⽤用戶時,能立刻顯⽰示添加的新⽤用戶信息。 
新的記錄信息在inserted表

Create trigger tr_user1
On users for insert
as
select * from inserted
go

delete觸發器it

任務:在Users表中建立名爲tr_user2的觸發器,當刪除⼀個⽤戶於時,要求以下:
一、立刻顯⽰示被刪除的⽤用戶信息。 
二、能輸出信息:被刪除的⽤用戶是**

Create trigger tr_user2
on users for delete
as
select * from deleted
select ‘被刪除的用戶是’+(select username for deleted)
go

update觸發器io

任務:在Users表中建立名爲tr_user3的觸發器,要求當修改一個⽤用戶信息時,能立刻顯⽰示該⽤用戶修改前和修改後的信息。 

Create trigger tr_user3
on users for update
as
select * from deleted
select * from inserted
go


練習class

任務: 本⽉月25⽇日編號爲9702的職員銷售了貨號爲1001,貨名爲CPU的貨物4個,銷售價格爲1000元。要求當插⼊入銷售記錄時,能⾃自動修改庫存表中的賣出數量。

create trigger tr_sell
on sell with encryption for insert
as
update stock 
set sale_num = sale_num+(slelct sel_num for inserted)
where ware_id = (select ware_id from inserted)
go


修改觸發器date

alter trigger 觸發器名select


重命名觸發器

sq_rename 觸發器原來的名字,新名字


刪除觸發器

drop trigger 觸發器名


查看觸發器

查觸發器的信息                         sp_help 觸發器名字

查看錶的觸發器類型                    sp_helptrigger 觸發器所屬表的名稱

查看未加密的觸發器定義              sp_helpText 觸發器名稱

查看觸發器的依賴關係                 sp_depends 觸發器名稱

相關文章
相關標籤/搜索