在表A中 有些条目有约束,有的条目中不存在约束
由于表记录上万条,无法直接区分哪些是有约束,那些不存在约束的我想这样这样是否能实现,就是当语句执行到约束条目的时候忽略 ,就继续删除下一条记录,谢谢!
表A 检查号 检查套餐  用户
001     a1       W
002     a2       S
003      a1      Z
004      a3      Y
005      a8      X
006      b10     O
....

解决方案 »

  1.   

    DELETE A1
    FROM A A1
    WHERE NOT EXISTS (
      SELECT 1
      FROM B
      WHERE B.连接字段 = A1.连接字段
      )
      

  2.   

    楼主的意思是如果本表与其他表有关联记录就不删除是伐,是的话那就:--方法1
    delete 
    from a
    from table1 as a inner join table2 as b on a.id<>b.id
    --id是两表之间的关联字段--方法2
    delete 
    from table1 where id not in (select id from table2)
      

  3.   

    那就不好办了,连你自己都不知道约束的字段,那怎么叫sql给你判断哪条记录该删除哪条不该删除呢?那只好问涉及数据库的人了!
      

  4.   

    楼主,约束是列概念,你那个题目有点像是把它转成行的概念了。
    我说一下我觉得你的意思中处理方法
    2008以后(以前的我不清楚,因为我在用2008),有一个CONTAINS 的函数,具体用法看联机丛书,你就检查这个函数返回的是否为true就可以知道有没有约束了。
      

  5.   

    可以做到,时间问题,给你一个思路,需要做一段t-sql
    一、你把表a复制一个到表b。
    二、用try
        先取出记录id号,一条一条记录的删,用try,如果删除失败,就在表b中标上该条记录是关联的,不能删除。
    这样,就取出了关联的记录。