高分求SQL语句,同时删除多个表中的相关记录,急....

qihboy 2004-07-16 06:33:56
比如说我有三个表,A表是分类,B表是内容,C表是B的回复内容,
我想在删除分类时,同时删除B中此分类下的数据并且删除C中与B相关的回复....
其中A中的ID与B中的SORT相关联,B中的ID与C中的REID相关联...
如何删除???
...全文
863 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
losgou 2004-07-17
  • 打赏
  • 举报
回复
可以用触发器,第一个表的 触发器,删除第二个表,第二个表的触发器删除第三个表的相关记录
两个触发器就可以搞定了.........
当然你用存储过程也可以.......
ASPGuy 2004-07-17
  • 打赏
  • 举报
回复
从从表往主表删。
我觉得用系统自带的东西不如手工有信心。
cdsun 2004-07-17
  • 打赏
  • 举报
回复
qunluo(最爱白菜)的方法应该没问题阿

我就经常这样写阿
pfc001 2004-07-17
  • 打赏
  • 举报
回复
先解除关系,再删
qihboy 2004-07-17
  • 打赏
  • 举报
回复
楼上,你那个方法是删除一条记录时好用,但删除最大级分类就不好用了.
我找到方法了.想了一晚上....哎...就是在删除C时用循环.

del_log_count=0
SQL = "Select id from blog where sort="& delsortid
set tempc=conn.Execute(sql)
while not tempc.eof

SQL = "delete from b_comment where logid="&tempc("log_ID")
conn.Execute(sql)
del_log_count=del_log_count+1

tempc.movenext
wend
sql= "delete from blog where id="& delsortid
conn.Execute(sql)
set tempc=nothing
sql="Delete from b_sort where sortid = " & delsortid
qihboy 2004-07-17
  • 打赏
  • 举报
回复
如我上面说的,已经解决了,谢谢各位大虾支持.
我现在用的是ACCESS数据库,如果是SQL还好处理一些.
就酱,结贴吧.
qunluo 2004-07-16
  • 打赏
  • 举报
回复
你应该在id.asp?id=2&ss=23&isort=4

这样的吧!!
这样的话就读取出来,然后
sqlecu="delete from table where id="& ids
...
....类推
然后
conn.excute (sqlecu2)
conn.excute (sqlecu23)
conn.excute (sqlecu4)

qihboy 2004-07-16
  • 打赏
  • 举报
回复
上来..
还有米有人知道怎么办呀?
qihboy 2004-07-16
  • 打赏
  • 举报
回复
Microsoft JET Database Engine 错误 '80040e10'

至少一个参数没有被指定值。

/new/admin_b_sort.asp,行 110

------------------ASP CODE-----------------------------------
105 dim delids,sqldelbc,sqldelbb,sqldelbs
106 delids = SafeRequest("id",1)
107 sqldelbc = "delete from b_comment where b_comment.logid=blog.id and blog.sort="& delids
108 sqldelbb = "delete from blog where blog.sort="& delids
109 sqldelbs = "delete from b_sort where sortid="& delids
110 conn.execute ( sqldelbc )
111 conn.execute ( sqldelbb )
112 conn.execute ( sqldelbs )
qihboy 2004-07-16
  • 打赏
  • 举报
回复
TO Drowning(Drowning)

我知道在SELECT可以这样来给不同的表重命名再列这样的关系式.
但是在DELETE里好像不能吧?我试了也不行......
Drowning 2004-07-16
  • 打赏
  • 举报
回复
这就用到了外码
先把要删除的A中的ID值赋值给iID
"delete from C where C.ReID=B.ID and B.Sort="& iID
"delete from B where B.Sort="& iID
"delete from A where A.ID="& iID
qihboy 2004-07-16
  • 打赏
  • 举报
回复
可是目录我用的是ACCESS数据库.我知道SQL里有触发器..
现在问题是通过ASP删除ACCESS里的数据啊.
boywind 2004-07-16
  • 打赏
  • 举报
回复
用关系数据库的关系图啊
wsdzmhongm 2004-07-16
  • 打赏
  • 举报
回复
可以用相关联的字段来一个一个删除,但要加事务处理
sinusoid 2004-07-16
  • 打赏
  • 举报
回复
如果表间设置了主外键的关联,只能先删除所有的从表(含外键),最后删除主表(含主键)。
sinusoid 2004-07-16
  • 打赏
  • 举报
回复
先删除C,再删除B,最后删除A

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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