关于表记录的删除

crazyweed0907 2007-10-26 01:00:32


现在有一个表A 主键A.id
现在有很多表 B,C ,D .....
它们都以A.id作为外键
现在我要删除A中的一条记录,先要判断各个表有没有关联记录,如果有则不能删除
如果我一个一个表判断,那么太费事,
有没有什么好的办法
...全文
234 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ojuju10 2007-10-26
  • 打赏
  • 举报
回复
可以设计触发器
fengming2222 2007-10-26
  • 打赏
  • 举报
回复
设置级联删除。
撸大湿 2007-10-26
  • 打赏
  • 举报
回复
delete from a where id not in
(select id from b union all select id from c union all select id from d)--等等
-- and 删除A中的一条记录
JoJooo 2007-10-26
  • 打赏
  • 举报
回复
学习
dawugui 2007-10-26
  • 打赏
  • 举报
回复
现在有一个表A 主键A.id
现在有很多表 B,C ,D .....
它们都以A.id作为外键
现在我要删除A中的一条记录,先要判断各个表有没有关联记录,如果有则不能删除
如果我一个一个表判断,那么太费事,
有没有什么好的办法

delete from a where 删除A中的一条记录 and (id not in (select id from b) or id not in (select id from c) or id not in (select id not in d)...)
中国风 2007-10-26
  • 打赏
  • 举报
回复
通过sysreferences表可以查出关系的表和列
renzhe02 2007-10-26
  • 打赏
  • 举报
回复
设置bcd中的id是a的id的外键,不级联删除
这样数据库就不允许删除有关联的数据.
可以在企业管理器中设置
chuifengde 2007-10-26
  • 打赏
  • 举报
回复
如果bcd中的id是a的id的外键,没设级联删除,sql本来就不会让删除

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧