删除一个学生表的记录,如果选课表有记录则提示错误的触发器如何写?

解决方案 »

  1.   

    create trigger trg_test on 学生表
    for delete
    as
    begin
      if eixsts (select 1 from 选课表 where id in(select id from deleted))
      begin
         print '有记录'
         roll back
      end
    end
      

  2.   

    直接在选课表和学生表中加外键
    alter table 选课表 
    add constratint fk_xk foreign key(学号)
        references 学生表 (学号);
      

  3.   

    不用触发器也可以呀,删除的时候直接判断就行呀,用触发器不便于维护。declare @id int
    set @id=1if eixsts (select 1 from 选课表 where id =@id)
      begin 
        print '有记录' 
        roll back 
      end else
      begin
        delete from 学生表 where id=@id
      end