例如:
有下面五张表,五张表之间都通过主外键关联
Dept(DepId,DepName)Student(StuId,StuName,DepId)Teacher(TeacherId,TeacherName)Course(CourseId,CousreName,TeacherId)Score(CourseID,StuId,Score)现在如果对Dept表中,DepId进行修改或者删除,怎么修改?最好能有代码说明!!!

解决方案 »

  1.   

    如果有外键约束直接删除是删除不了的。
    使用触发器又比较麻烦。建议删除以前先做下判断。--例如:
    Dept(DepId,DepName)Student(StuId,StuName,DepId)
    --删除一个DepIddelete from Dept where DepId=@DepId --传入的变量 (直接这样可以会报错)if(select count(*) from Student where DepId=@DepId )>0
    select '存在约束不能删除'
    else
    delete from Dept where DepId=@DepId
      

  2.   

    如果就只有2个表呢?比如说,我有一个学生表,学生ID是主键,在另外一张成绩表中,这个ID是外键,如果后来发现这学生ID在注册时有问题,要进行修改,那怎么办?这是个很实际的问题啊,肯定要解决嘛!!!
      

  3.   

    先修改学生表, update 学生表 set ID='[正确ID]' where ID='[错误ID]'
    后修改成绩表, update 成绩表 set ID='[正确ID]' where ID='[错误ID]'
    就2个update语句而已呀,有什么问题?