@資料庫的面試題
定義:觸發器是乙個特殊的儲存過程,主要通過事件來觸發的,它被**到sql sever的**或者檢視上
1具有較強的約束從而保證 了資料庫的完整性和一致性
2.觸發器還可以阻止資料庫未被允許的更和變化新
3,可以聯級運算,使用方便快捷
1、dml( 資料操縱語言 data manipulation language)觸發器:是指觸發器在資料庫中發生dml事件時將啟用。dml事件即指在表或檢視中修改資料的insert、update、delete語句;
2、ddl(資料定義語言 data definition language)觸發器:是指當伺服器或資料庫中發生(ddl事件時將啟用。ddl事件即指在表或索引中的create、alter、drop語句也;
3、登陸觸發器:是指當使用者登入sql server例項建立會話時觸發。
觸發器的sql server例項:要求就是在addtable這個表上建立乙個update觸發器,語句為:
create trigger mytrigger on addtable for update
##舉例
例如可以設定當表中增加或刪除了記錄後,輸出來訊息進行通知,這樣就可以在這個表上設定乙個觸發器,觸發條件為增加或刪除了記錄,觸發的事件是 進行通知訊息的輸出,
觸發器的使用
新增:–建立觸發器,當我在書籍新增一條記錄的時候,觸發乙個事件
–這個事件將會在書籍分類表,給新書籍分類,庫存加1
go
create
trigger tri_add
on books for
insert
asdeclare
@typeid
intselect
@typeid
=teplyid from inserted
update booktype set nums=nums+
1where id=
@typeid
select
*from inserted
select
*from deleted
刪除:
–建立觸發器,當我在書籍表刪除一條記錄是時候,觸發乙個事件
–這個事件將會在書籍分類表,給對應刪除書分類,庫存加1
go
create
trigger tri_del
on books for
delete
asdeclare
@typeid
intselect
@typeid
=@typeid
from deleted
update booktype set nums=nums-
1where id=
@typeid
select
*from inserted
select
*from deleted
update books set teplyid=
2where id=
1
修改:
–修改1 mvc 很好用
– 將這本書分類1 改為2
–型別為1 減一 型別為2 的加一
–建立觸發器完成功能
go
create
trigger tri_up
on books for
update
asdeclare
@oldtypeid
intdeclare
@newtypeid
intselect
@oldtypeid
from deleted
select
@newtypeid
from inserted
update booktype set nums=nums-
1where id=
@oldtypeid
--修改之前的分類
update booktype set nums=nums+
1where id=
@newtypeid
--修改之後的類別
select
*from inserted
select
*from deleted
觸發器與儲存過程主要區別於觸發器執行方式。儲存過程必須有使用者,應用程式或者觸發器來顯示的呼叫並執行,而觸發器是當特定的時間出現是時候,自動執行或者啟用,與連線用資料庫的使用者,或者應用程式 面試題 資料庫
今天面試,遇到資料庫方面的問題,由於好久沒接觸過,很多都忘記了,回來查了資料,整理一下 1 觸發器與儲存過程的區別 觸發器 是一種特殊型別的儲存過程,當使用下面的一種或多種資料修改操作在指定表中對資料進行修改時,觸發器會生效 update insert 或 delete。觸發器可以查詢其它表,而且可...
資料庫 面試題
正規化 第一正規化 1nf 所謂第一正規化 1nf 是指在關係模型中,所有的域都應該是原子性的,而不能是集合 陣列 記錄等非原子資料項。第二正規化 2nf 在1nf基礎上消除非主屬性對主碼的部分函式依賴。第三正規化 3nf 在2nf基礎上消除非主屬性對主碼的傳遞函式依賴。巴斯 科德正規化 bcnf ...
資料庫面試題
這個主要是給自己看的,答案都是網上搜的 乙個叫department的表,裡面只有乙個字段 name 一共有4條紀錄,分別是a,b,c,d,對應四個球對,現在四個球對進行比賽,用一條sql語句顯示所有可能的比賽組合 select a.name,b.name fromdepartment a,depar...