首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问,delete语句

2012-07-02 
请教,delete语句在表A中 有些条目有约束,有的条目中不存在约束由于表记录上万条,无法直接区分哪些是有约束

请教,delete语句
在表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 条件?
[解决办法]
探讨

引用:

LZ的约束指的是什么东西


表与另一表存在关联数据

[解决办法]
楼主的意思是如果本表与其他表有关联记录就不删除是伐,是的话那就:
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中标上该条记录是关联的,不能删除。
这样,就取出了关联的记录。


热点排行
Bad Request.