觸發器的定義(SQL SERVER 2008)

一 、實驗題目:觸發器的定義。
二 、實驗目的:熟悉觸發器的定義和使用。
題目六:
藥品(編號,名稱,價格,廠商)
處方(藥品編號,數量,醫生編號)
醫生 (編號,姓名,科室,職稱)
建立藥品的delete 觸發器,只有當此藥品品沒有人買時纔可刪除,若有處方記錄不能刪除。

所測試的數據:

INSERT INTO 醫生
(編號,姓名,科室,職稱)
VALUES
('1001','張三','外科','主刀醫師'),
('1002','李四','內科','主任醫師'),
('1003','王五','小兒科','主治醫師'),
('1004','王二','眼科','主任醫師'),
('1005','趙六','婦科','主刀醫師'),
('1006','張力','內科','副主任醫師'),
('1007','張力','骨科','主刀醫師');
select * from 醫生

INSERT INTO 藥品
(編號,名稱,價格,廠商)
VALUES
('2001','板藍根','28.00','雲南製藥'),
('2002','益氣養血口服液','29.00','北方製藥'),
('2003','小兒感冒顆粒','35.00','三九藥業'),
('2004','999感冒靈','14.00','三九藥業'),
('2005','維C銀翹片','25.00','北方製藥'),
('2006','珍珠明目滴眼液','19.00','天龍藥業');
select * from 藥品

INSERT INTO 處方
(藥品編號,數量,醫生編號)
VALUES
('2001','2','1002'),
('2001','2','1006'),
('2005','2','1006'),
('2006','2','1004'),
('2002','2','1005'),
('2003','2','1003');
select * from 處方

在這裏插入圖片描述
觸發器的定義:

create trigger trgDeleteNullSales
on 藥品
for delete
as
if exists(select 編號
 from deleted 
where 編號 in 
(select 藥品編號 from 處方)
)
begin
print'不能被刪除'
rollback 
end 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章