在 SQLSERVER 中建立
两个表: 一个是子表 依赖另外一个父表只能通过父表中级联删除子表中的记录 不允许直接从子表删除记录请问如何实现

解决方案 »

  1.   

    触发器,DELETE了再INSERT回去。
      

  2.   

    Limpire(昨夜小楼)  老大 好像不行啊在级联删除时候 ,子记录被删除的时候,仍然会调用 子记录的触发器 这样级联删除也不能删除了
      

  3.   


    设置权限 不行的 设置了权限仍然不能阻止 我在sql下面删除 子表的记录不过我自己想到一个诡异的方法  非常诡异的方法,在父表中不用级联删除  而自己使用INSTEAD OF触发器自定义删除:先删除子记录然后再删除父记录  
    而且重要的是在INSTEAD OF触发器里面创建一个全局临时表: "tmpTable"另外同时在子表也创建一个AFTER触发器 并使用 "tmpTable"
    这样当
    直接从子表删除子记录时,因为没有 "tmpTable" 没有定义所以使用"tmpTable" 会发生错误 从而阻止了子记录删除而从父表中删除 则因为 父表触发器中创建了 "tmpTable"  而不会出错  从而顺利的把父记录与子记录同时删除
      

  4.   

    在 SQLSERVER 中建立
    两个表: 一个是子表b 依赖另外一个父表a只能通过父表中级联删除子表中的记录 不允许直接从子表删除记录
    再建一个表x与子表联系
    子表的主键做表x的外键父表a中级联删除时写个触发器
    先删除表x的,
    然后再删除子表b的