触发器的定义

图书(书号,书名,作者编号,价格,出版社编号)

作者(编号,姓名,电话)

出版社(编号,出版社名称,地址)

建立作者的delete 触发器,只有当此作者没有任何作品才可删除,若有出书的记录不能删除。

/*首先在C盘中新建文件夹“数据库实验->数据库实验六”,准备将创建的数据库存入*/
create database Books
 
/*使用已经建立的数据库建表*/
 
--Authortable
use Books
create table Authortable
(
Anu Char(11)primary key,--nu
Ana Char(32),--na
Atel Char(11)unique--tel
)
insert into  Authortable values('ywm153264','严蔚敏','15302305168'),
('ldm0523621','李冬梅','17859642300'),
('wwm032651','吴伟民','13746902305'),
('ykq156234','杨孔庆','17846520203'),
('hmx023102','何孟星','15326490203'),
('zxr659132','朱晓睿','19932650200'),
('hly032615','黄黎原','19965326041'),
('qnbtl0361','乔恩•本特利','05231648456')
insert into Authortable values ('zal1532643','赵安笼','13649532100')
 

--Publishertable
use Books
create table Publishertable
(
Pnu Char(11)primary key,--nu
Pna Char(32)default'空',--na
Pid Char(60)--id
)
insert into Publishertable values('rmyd15632','人民邮电出版社','北京市丰台区成寿寺路11号'),
('gj4582136','高教出版社','北京市西城区德外大街4号')
 

--Booktable
use Books
create table Booktable
(
Bnu Char(20),--Bnu
Bna Char(32),--Bna
Anu Char(11),
Bpri float check (Bpri>0 and Bpri<=300),
Pnu Char(11),
primary key(Bnu,Anu)
)
insert into Booktable values('sjjgC78712','数据结构(C语言版)','ywm153264','35','rmyd15632'),
('sjjgC78712','数据结构(C语言版)','ldm0523621','35','rmyd15632'),
('sjjgC78712','数据结构(C语言版)','wwm032651','35','rmyd15632'),
('gdsxS65235','高等数学(第三版)','ykq156234','27.8','gj4582136'),
('qcdgdzjsyjn00','汽车电工电子技术与技能(第2版)','hmx023102','23.1','gj4582136'),
('bjldsx0365','不焦虑的数学','zxr659132','74.3','rmyd15632'),
('bysdby022','贝叶斯的博弈','hly032615','78.5','rmyd15632'),
('bczj8456312','编程珠玑','qnbtl0361','41.3','rmyd15632')



/*图书(书号,书名,作者编号,价格,出版社编号)
作者(编号,姓名,电话)
出版社(编号,出版社名称,地址)
建立作者的delete 触发器,只有当此作者没有任何作品才可删除,若有出书的记录不能删除。
*/
use Books
go
create trigger trigger_Authortable
on Authortable
for delete
as
declare @ana Char(32)
declare @anu Char(11)
declare @count int
select @ana=Ana,@anu=Anu from deleted
select @count=count(*) from Booktable where Anu=@anu
if(@count>0)
begin
print'该作者已存在出版图书,不可删除!'
rollback
end
else
print '删除作者成功!'


delete from Authortable where Ana='朱晓睿'--朱晓睿有出版图书不能删除


delete from Authortable where Ana='赵安笼'--赵安笼没有出版图书可以删除

使用触发器操作,对信息进行限制

删除“朱晓睿”作者时,由于朱晓睿作者已经出版了图书不焦虑的数学,所以该作者不能删除,显示结果为:

 而“赵安笼”作者并没有出版图书,所以在原理上可以删除,我的显示结果为:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_1_7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值