C# 在SQLServer中如何根据表的关系知道记录的存在

C# 在SQLServer中如何根据表的关系知道记录的存在,c#,asp.net,sql-server,database,vb.net,C#,Asp.net,Sql Server,Database,Vb.net,我在SQL Server数据库中有100个表。每个表都与Customer表有关系,每个表都有一列CustomerId 如果我试图从表中删除客户,则会出现错误 所以我想检查每个表,看看该表中是否存在CustomerId 这在SQL Server中可能吗?如果记录存在于其他表中,则仅返回是/否?您可以创建一个小函数来检查id是否存在 试试这个: bool IsIdExist(int id) { using(SqlConnection con = new SqlConne

我在SQL Server数据库中有100个表。每个表都与
Customer
表有关系,每个表都有一列
CustomerId

如果我试图从表中删除客户,则会出现错误

所以我想检查每个表,看看该表中是否存在
CustomerId


这在SQL Server中可能吗?如果记录存在于其他表中,则仅返回是/否?

您可以创建一个小函数来检查id是否存在

试试这个:

   bool IsIdExist(int id)
    {
        using(SqlConnection con = new SqlConnection("Connection String Here"))
        using (SqlCommand command = new SqlCommand("select count(*) from customer where id=@id", con))
        {
            command.Parameters.AddWithValue("@id", id);
            con.Open();
            int rows = Convert.ToInt32(command.ExecuteScalar());
            if (rows > 0)
                return true;

            return false;
        }            
    }
您可以按如下方式调用上述函数:

if(IsIdExist(300))
{
//id exists
}
else
{
//id does not exist
}

你犯了什么错误?如果是,您是否在关系中选择了cascade?能否给我们一个简短的表示例,以及您到底想做什么?DELETE语句与引用约束“FK_FinishMaterialItem_Customer”冲突。冲突发生在数据库“PakPackages\u Live”、表“dbo.FinishMaterialItem”、列“CustomerCode”中。我知道我正在有条件地逐个检查每个表。但这不是正确的方式不,先生,这不是我的要求。我想知道Sql Server的语法,如何知道关系表上的主键引用。如果记录存在是/否Only@Salman:您能举例说明您的要求吗?我在Sql Server中有100个表。一张桌子是顾客的桌子。好的。现在每个100表都有列CustomerID和与客户主键的关系,每个表都有forin键和。假设一个id为1的客户“ABC”,这1个id通过每个100表。知道如果我想从CustomerID=1的客户处运行Qurey Delete,那么它就不能被删除,因为它的关系id传递给其他100个表。我的问题是,如何知道在任何关系表上有1个Id传递,只需返回true或Not Simple:)。但是我不喜欢一个一个地检查