有人碰到过这个问题吗?太夸张了。SQL SERVER问题。

johnnyzhou_chn 2005-11-04 02:33:04
有个主表MAIN,一个副表DETAIL,
主表有字段 ID,
副表有字段 ID,PARENTID
其中MAIN.ID和DETAIL.PARENTID是一对多的关系

我现在做了以下操作,先delete from main where (条件)

因为MAIN里面ID没有了,所以想,通过 DELETE FROM DETAIL WHERE (PARENTID NOT IN (SELECT id FROM MAIN))办法把表DETAIL里面的多余的子记录删除

可是我在删除前先用 Select * FROM DETAIL WHERE (PARENTID NOT IN (SELECT id FROM MAIN))
一条记录也找不到。我又到DETAIL表里同过条件找到几个记录,拿这些记录的PARENTID 到MAIN里面去查,的确在MAIN里面没有记录,怎么回事?????????
...全文
67 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnnyzhou_chn 2005-11-04
  • 打赏
  • 举报
回复
自己解决了,主表删除记录后,从表肯定有很多多余的数据的,

原因是 主表中出现了ID是null 的记录,
wangdehao 2005-11-04
  • 打赏
  • 举报
回复
应该是有级联删除的,你删除主表的同时,副表相应的纪录也删除了
浩方软件HFWMS 2005-11-04
  • 打赏
  • 举报
回复
那肯定没有,主从表应该同步删除才行
了缘 2005-11-04
  • 打赏
  • 举报
回复
没有搞明白你说什么
子表没有记录应该是正确的啊,可能刚好你删除的那几笔MAIN中的资料没有子记录呢

34,590

社区成员

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

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