在表A中 有些条目有约束,有的条目中不存在约束
由于表记录上万条,无法直接区分哪些是有约束,那些不存在约束的
我想这样这样是否能实现,就是当语句执行到约束条目的时候忽略 ,就继续删除下一条记录,谢谢!
表A
检查号 检查套餐 用户
001 a1 W
002 a2 S
003 a1 Z
004 a3 Y
005 a8 X
006 b10 O
....
------解决方案--------------------
- SQL code
DELETE A1FROM A A1WHERE NOT EXISTS ( SELECT 1 FROM B WHERE B.连接字段 = A1.连接字段 )
------解决方案--------------------
以上语句删除无约束数据,自己确定是否可以执行
------解决方案--------------------
LZ的约束指的是什么东西
------解决方案--------------------
直接加上个where 条件?
------解决方案--------------------
------解决方案--------------------
楼主的意思是如果本表与其他表有关联记录就不删除是伐,是的话那就:
- SQL code
--方法1delete from afrom table1 as a inner join table2 as b on a.id<>b.id--id是两表之间的关联字段--方法2delete from table1 where id not in (select id from table2)
------解决方案--------------------
上面的都已经给出了问题的答案了,不知道楼主是不是所要的结果!
------解决方案--------------------
那就不好办了,连你自己都不知道约束的字段,那怎么叫sql给你判断哪条记录该删除哪条不该删除呢?
那只好问涉及数据库的人了!
------解决方案--------------------
楼主,约束是列概念,你那个题目有点像是把它转成行的概念了。
我说一下我觉得你的意思中处理方法
2008以后(以前的我不清楚,因为我在用2008),有一个CONTAINS 的函数,具体用法看联机丛书,你就检查这个函数返回的是否为true就可以知道有没有约束了。
------解决方案--------------------
可以做到,时间问题,给你一个思路,需要做一段t-sql
一、你把表a复制一个到表b。
二、用try
先取出记录id号,一条一条记录的删,用try,如果删除失败,就在表b中标上该条记录是关联的,不能删除。
这样,就取出了关联的记录。