急!!!请各位大虾帮忙!

jm_qinqin 2010-06-10 10:53:32

是在sql server中
我有二张表
tb_ProductClass有字段classid(主键),classname

tb_Products有字段classid(外键)
我要删除tb_ProductClass里面的东西,怎样把tb_Products里有classid是属于tb_ProductClass里面classid一起删除啊!
...全文
74 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jm_qinqin 2010-06-10
  • 打赏
  • 举报
回复
谢谢各位啦!O(∩_∩)O~
Andy__Huang 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 jm_qinqin 的回复:]
是在sql server中
我有二张表
tb_ProductClass有字段classid(主键),classname

tb_Products有字段classid(外键)
我要删除tb_ProductClass里面的东西,怎样把tb_Products里有classid是属于tb_ProductClass里面classid一起删除啊!
[/Quote]

这个你不要想着用一行代码解决,其实最有保证的做法还是写两行代码,最好还是用存储过程处理

create proc procClass
@classid varchar(20)
as
begin tran
delete tb_Products where classid=@classid
if @@error<>0 goto err
delete tb_ProductClass where classid=@classid
if @@error<>0 goto err

commit tran
return
err:
rollback tran

go

注意:
一定要先删除tb_Products,再删除tb_ProductsClass,因为它是主键和外健关系

jm_qinqin 2010-06-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jwdream2008 的回复:]
SQL code
delete from tb_Products where classid in (select calssid from tb_ProductClass)
delete from tb_ProductClass
[/Quote]
我怎么样一起执行,谢谢
永生天地 2010-06-10
  • 打赏
  • 举报
回复
1、设置级联删除
2、写触发器删除
GOODlivelife 2010-06-10
  • 打赏
  • 举报
回复
SQL级联操作设置

对SQL数据库的表,进行级联操作(如级联更新及删除),首先需要设置表的主外键关系,有两种方法:

第一种:

1. 选择你要进行操作的数据库

2. 为你要创建关系的两个表设置主键
3. 在此数据库的数据库关系图一栏处 =>单击右键=>创建新的关系图=>选择要添加关系的表,单击添加

4. 完成后会在关系图的窗口上生成两个表,在表的某列按钮上长按鼠标左键,并拖到另一张表上

5. 在新弹出的"表和列"的窗口中,设置两个表对应的主外键字段,确定

6. 在外键关系窗口中,INSERT 和 UPDATE 规范一栏处,将更新规则和删除规则设置为层叠,点击确定

完成,即可实现级联更新

第二种:

1. 选择你要进行操作的数据库

2. 为你要创建关系的两个表设置主键
3. 单击你设置外键表的树型节点 =>在键一栏处单击右键=>新建外键

4. 在外键关系窗口中,单击表和列规范一栏右边的按钮

5. 在新弹出的"表和列"的窗口中,设置两个表对应的主外键字段,确定

6. 返回外键关系窗口,在 INSERT 和 UPDATE 规范一栏处,将更新规则和删除规则设置为层叠,点击确

定完成,即可实现级联更新
jwdream2008 2010-06-10
  • 打赏
  • 举报
回复
delete from tb_Products  where classid in (select calssid from tb_ProductClass)
delete from tb_ProductClass
东那个升 2010-06-10
  • 打赏
  • 举报
回复
主外键级联删除。

触发器
华夏小卒 2010-06-10
  • 打赏
  • 举报
回复
用外键,或者触发器
shixixi1987 2010-06-10
  • 打赏
  • 举报
回复
利用触发器
GOODlivelife 2010-06-10
  • 打赏
  • 举报
回复
可以用级联删除,也可以用触发器,当然,你也可以选择手工先删除外键的数据,再删除主表

最好用级联

34,838

社区成员

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

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