日期:2014-05-17  浏览次数:20409 次

删除与多张表有主外键关系的表中的数据
我有一个a表,b、c、d、e...表是他的字表。我要在删除a表中的数据时,判断如果子表中有对应的数据则不删除,如果没有则删除。我应该怎么做?

------解决方案--------------------
那就select一下其它表,看有没有数据
------解决方案--------------------
你删除的时候SQL Server自己会去查询其它子表,假设不能删除就会抛出异常,可以删除就直接删除。

实际上就算是你自己写几条sql语句(或者存储过程)来执行删除,这样一个操作的目的是删除记录,那么当删除失败(不管是什么理由造成的)的时候,你也应该使用 raiserror 语句通知上层的 .net 程序。

所以这两个是同样的流程。一般来说,你无需去写查询代码,直接去删除就是了。
------解决方案--------------------
楼上的说得不错,我学习学习,顶一下
------解决方案--------------------
判断一下子表中有没有使用到A表的数据。
有的话删除子表在删除主表
------解决方案--------------------
探讨
你删除的时候SQL Server自己会去查询其它子表,假设不能删除就会抛出异常,可以删除就直接删除。

实际上就算是你自己写几条sql语句(或者存储过程)来执行删除,这样一个操作的目的是删除记录,那么当删除失败(不管是什么理由造成的)的时候,你也应该使用 raiserror 语句通知上层的 .net 程序。

所以这两个是同样的流程。一般来说,你无需去写查询代码,直接去删除就是了。