读书人

请教怎么实现下面的要求:删除表A中某

发布时间: 2012-02-08 19:52:21 作者: rapoo

请问如何实现下面的要求:删除表A中某一行,则自动删除表B中,代表A的子项的记录?
例如:表A是班级表,存储了学校里所有班级的名称;
表B是学生表,存储了学校里面所有班级所有学生的名字;

如何自动做到这一点?如果删除了表A中的某个班级,则表B中,该班级的所有学生记录也自动被删除?

当然,表B中增加一个字段记录学生班级,“手动”select一下再删除,是可以做到的。但是有没有什么办法“自动”做到?比如设置字段的映射关系?设置表之间的关系?

真诚求教,谢谢各位!我用的是VC + ADO + ACCESS


[解决办法]

Access 中不知道,如果在 SQL Server 中可以用触发器实现。

但是,班级表和学生表是典型的一对多关系,可以理解为班级表是主表,学生表是从表,只有班级表有数据后,学生表才应该有数据;所以,如果删除的话,应该是先删除学生表,然后再删除班级表。如果建立了外键,那一定要这样操作,否则,在班级中还有学生的情况下,删除不了班级数据。

所以,我的建议是:

先删除学生数据(可能是多条),再删除班级数据(一条),而且最好把它们放到事务中。

开始新事务
DELETE FROM student WHERE class_id = xx
DELETE FROM class WHERE class_id = xx
提交事务

[解决办法]
表A上建delete触发器
[解决办法]
触发器吧
[解决办法]
建立对主表进行DELETE触发器
[解决办法]
access怎么触发器啊?不行吧!二楼说得没错
[解决办法]
不能根据触发器的原理在access中造触发器么
[解决办法]
级连删除问题:

用触发器实现比较简单。

user表 on delete {

update friend表
set flag = 'delete '
where userid = user表.userid

}

读书人网 >VC/MFC

热点推荐