返回首页

您好,

我已经4个表假设:t1.id是PK和t2.id,t3.id,t4.id是FK,现在,
我怎么能删除所有表的特定行(ID)
当然,我可以做4 DeleteCommands在StoredProcedure的,但我认为这不是最优化,有更好的解决方案?

回答

评论会员:迪伦莫利 时间:2012/02/07
4删除包裹在一个事务中,在存储过程中的命令是绝对罚款,你就必须从"由下而上"虽然删除。

e.g

BEGIN TRANS

 

    DELETE FROM Table4 WHERE Table1_PK = 1

 

    DELETE FROM Table3 WHERE Table1_PK = 1

 

COMMIT TRANS

没有什么,在所有的错误。

你也可以在您的主键(见表1)执行级联删除,让我们从本表中删除,它会自动删除所有相关数据

这取决于你如何实现,我个人没有大规模热衷于级联删除。我喜欢有明确地告诉数据库,删除和得到的东西,如果不小心删除错误{S0}
评论会员:爱德华・卢 时间:2012/02/07
尝试FF代码:

{C}
我发现在网络上。在这里,供大家参考:


的问候,
爱德华
评论会员:阿米尔Mahfoozi 时间:2012/02/07
。可以申请他们的关系级联删除

打开SSMS中,然后去设计T1,然后打开关系窗口,并设置所有级联关系的删除规则(在插入和更新规范部分)

然后保存更改。

从现在开始,如果你删除所有相关行的T2,T3,T4在T1纪录将被自动删除。

希望它帮助