初学者吉他谱小星星:帮我看看 这个 SQL 语段

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 21:12:16
我想建立一个触发器。
又两个表一个“图书”一个“出版社”

在表“出版社”中 “出版社名”是主健
在表“图书”中 图书号 是键 “出版社名”是其外键

触发器作用是:当删除 表“出版社”的一个“出版社名” 在表“图书”中出版社名 与其相同的 信息全部删除!!!

在线等答案 急球!!!
不是我不想那样做啊....
可是 课程设计 的要求是 一定要建一个 "触发器"啊!!!!
我郁闷哦....

我来写吧
由于不知道你图书表中的其他字段所以我只写了用出版社名关联的语句,你需要根据你表中的字段再关联一下,把所有字段都与deleted表中字段关联,才能做到删除[图书]表中一条数据时只删除要删除的,否则会把表里出版社名与要删除的数据同名的数据都删除。当然如果图书表里每条记录的出版社名都唯一就不用考虑这个问题了。

delete [图书]
from [图书],deleted
where [图书].[出版社名]=deleted.[出版社名]

触发器如下

create trigger tg_tushu
on [图书]
instead of delete
as
delete [图书]
from [图书],deleted
where [图书].[出版社名]=deleted.[出版社名]

delete [出版社]
from [出版社],deleted
where [出版社].[出版社名]=deleted.[出版社名]

'删除出版社名
sql="delete from 出版社 where 出版社名=要删除的出版社名"
conn.Execute sql
'删除该出版社的所有图书
sql="delete from 图书 where 出版社名=要删除的出版社名"
conn.Execute sql

作级连删除不就行吗?为什么用触发器?多麻烦啊

你建了外键的话.如果删除出版社,其他相关的信息都会自动删除