C# 检查使用所有外键的位置

C# 检查使用所有外键的位置,c#,asp.net,sql-server,C#,Asp.net,Sql Server,假设有一个主键为“MainID”的表Table1,这个MainID在许多表中用作外键 现在,当我尝试从表1中删除一条记录,该记录的MainID作为外键正在某些子表中使用时,它抛出了一个异常,即“外键冲突” 现在,我希望以这样一种方式设计我的Delete Strored过程:首先检查具有外键列“MainID”的所有子表,如果表1中的MainID正在任何子表中使用,它应该返回0。基于此0值,我希望显示一个警报框,该框将显示“仍在使用或watever”,并且不允许用户删除该记录,除非已从表1中删除子表

假设有一个主键为“MainID”的表Table1,这个MainID在许多表中用作外键

现在,当我尝试从表1中删除一条记录,该记录的MainID作为外键正在某些子表中使用时,它抛出了一个异常,即“外键冲突”

现在,我希望以这样一种方式设计我的Delete Strored过程:首先检查具有外键列“MainID”的所有子表,如果表1中的MainID正在任何子表中使用,它应该返回0。基于此0值,我希望显示一个警报框,该框将显示“仍在使用或watever”,并且不允许用户删除该记录,除非已从表1中删除子表中使用该mainID的所有记录


我不能在删除级联上使用。我希望用户逐个手动删除子表记录。只有在使用MaIDID的子表记录被删除后,用户才能从表1

< P>中删除记录。我将考虑使用Test/catch(在C或SQL Server中)捕获正确的SQL错误号。 钻取系统表并查找链接很简单,但随后需要进行几个动态查询,每个子表一个查询。

+1在ASP.NET C#中捕捉到这一点肯定是最好的;使用Exception.Number检查是否违反外键