当前位置: 代码迷 >> ASP.NET >> 剔除与多张表有主外键关系的表中的数据
  详细解决方案

剔除与多张表有主外键关系的表中的数据

热度:7692   发布时间:2013-02-25 00:00:00.0
删除与多张表有主外键关系的表中的数据
我有一个a表,b、c、d、e...表是他的字表。我要在删除a表中的数据时,判断如果子表中有对应的数据则不删除,如果没有则删除。我应该怎么做?

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

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

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

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

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