读书人

求sql语句或存储过程,批量删除同一表中

发布时间: 2012-01-15 22:57:49 作者: rapoo

求sql语句或存储过程,批量删除同一表中id关联的记录!
idclasscode parentcode

10010
2001001001
3001001001 001001
4001001001001001001001
5001001001001001001001001001
6001001001001001001 001001001001001
7001001001001001001001001001001001001001
8001001001001001001002001001001001001001
9001001001002001001001
10001001001003001001001
11001001001004001001001
12001001001005001001001
13001001001006001001001
14001001002 001001
15001001003 001001

表结构如上

如我想删除id=1的记录,同时也级联删除父编码是001的记录,以此类推,就是把001的所有子记录都删除,该怎么写sql语句呀??存储过程也好??

谢谢^

[解决办法]
delete a
from tablename a,tablename b
where b.id=1
and a.classcode like b.classcode+ '% '

[解决办法]
如果a , b 表有外束的,
可以增加束,除a 表的id ,自除,b表的id的

alter table a
add constraint cons_del foreign key(id) references b(id)on delete cascade
它就可以自除

於,要除b表 id 的子
我可以器完成

create trigger tri_del on b
after delete
as
delete b
where idclasscode in (select parentcode from deleted)



[解决办法]
delete a
from tablename a
where a.classcode like a.classcode+ '% '
[解决办法]


delete a
from tablename a,tablename b
where a.id=1
and charindex( ', '+a.idclasscode+ ', ', ', '+b.parentcode+ ', ')> 0

读书人网 >SQL Server

热点推荐