关于delphi和sql sever2000级联删除的有关问题
关于delphi和sql sever2000级联删除的问题
举个例子。。。。。
有一张表 班级表(班级编号,班级名称,人数)主键为班级编号
学生表(学号,班级编号,姓名)学号为主键,班级编号为外键
现在想删掉班级表中的一条记录,学生表中有记录,
怎么实现这种级联删除??
用 adotable怎么实现?
adoquery实现也可,但是adoquery需要写一个删除的条件呀?怎么实现呀??
求代码啊?
------解决方案--------------------
第一,在管理器中设置表与表的级联删除
第二,代码,得到主表id后,根据id,去删除所有关联的表中对应的数据,然后再删主表记录
------解决方案--------------------
外键加级联删除选项就可以了。删除班级时,学生自动删除
ALTER TABLE 学生表 ADD CONSTRAINT fk_stud FOREIGN KEY (班级代号) REFERENCES class(班级代号) ON DELETE CASCADE
这种情况时,建议对外键字段建索引,避免删除班级表的其中一条记录时锁定全部的学生表。
CREATE INDEX idx_fk_stu ON 学生表(班级代号)
举个例子。。。。。
有一张表 班级表(班级编号,班级名称,人数)主键为班级编号
学生表(学号,班级编号,姓名)学号为主键,班级编号为外键
现在想删掉班级表中的一条记录,学生表中有记录,
怎么实现这种级联删除??
用 adotable怎么实现?
adoquery实现也可,但是adoquery需要写一个删除的条件呀?怎么实现呀??
求代码啊?
------解决方案--------------------
第一,在管理器中设置表与表的级联删除
第二,代码,得到主表id后,根据id,去删除所有关联的表中对应的数据,然后再删主表记录
------解决方案--------------------
外键加级联删除选项就可以了。删除班级时,学生自动删除
ALTER TABLE 学生表 ADD CONSTRAINT fk_stud FOREIGN KEY (班级代号) REFERENCES class(班级代号) ON DELETE CASCADE
这种情况时,建议对外键字段建索引,避免删除班级表的其中一条记录时锁定全部的学生表。
CREATE INDEX idx_fk_stu ON 学生表(班级代号)