日期:2014-05-18  浏览次数:20428 次

删除table1遇到问题!因为table2和table1有键值连接!!!请问如何干净的删除?
table1和table2通过id连接,我想删除table1里的数据,提示说不能删除,因为table2中有对table1中的引用!
而我要先删除table2的相关记录的时候,又提示不能删除!因为table3中有对table2的引用(通过id2连接)!!!!

请问如何干净的删除所有table1里面 name = ‘College’的数据?(同时删除table2和table3中引用table1的相关记录!)

------解决方案--------------------
开启表1/表2/表3的级联更新/删除开关
------解决方案--------------------
只能找到最初的外键值,逐一删除之.
------解决方案--------------------
因为表之间存在键的关系,所以不能删除有关联数据
为了保证数据的完整性,要从最外层的数据开始删除
--
先删除t3中相关数据,t2中相关数据,t1中相关数据
--
平时在做数据库清空和相关数据清楚是也是这样删的

SQL code

--清空所有数据
--反之不行
delete from t3
go 
delete from t2
go 
delete from t1

select t2.ID,t3.ID from t1,t2,t3 where t1.name='collage'

------解决方案--------------------
先删除从表数据
再删除主表数据

一级级删
------解决方案--------------------
sysreferences

sysforeignkeys

可找出外健表..
--楼主的应该这个顺序和条件删除

delete t3
from 

join 
t2 on t.ID=t2.t1ID and t.Name='collage'
join
t3 on t3.ID=t2ID

delete t2
from 

join 
t2 on t.ID=t2.t1ID and t.Name='collage'

delete t2
from 

where
Name='collage'