2014-02-15 13 views
1

表的關係,我有一個SQL Server數據庫100桌。每個表都有與Customer表的關係,每個表有一欄CustomerId如何知道存在記錄對SQL Server

如果我嘗試從表中刪除一個客戶,然後我得到一個錯誤。

所以我要檢查每個表,看是否存在該表CustomerId與否。

這是可能在SQL Server?只返回我是/否,如果記錄存在於其他表中?

+0

你會得到什麼錯誤?如果是你選擇級聯關係? – Shell

+0

你可以給我們一個你的表的簡短例子,你到底想要做什麼? –

+0

DELETE語句與REFERENCE約束「FK_FinishMaterialItem_Customer」衝突。衝突發生在數據庫「PakPackages_Live」,表「dbo.FinishMaterialItem」,「CustomerCode」列中。 – Salman

回答

0

您可以創建小的功能,請檢查是否ID存在與否。

試試這個:

bool IsIdExist(int id) 
    { 
     using(SqlConnection con = new SqlConnection("Connection String Here")) 
     using (SqlCommand command = new SqlCommand("select count(*) from customer where [email protected]", 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 
} 
+0

不,這不是我的要求。我想知道Sql Server的Syntax如何知道關聯表的主鍵參考。如果記錄存在是/否只有 – Salman

+0

@Salman:能否請你用例子說明你的要求? –

+0

我在Sql Server中有100個表。一個表是客戶的表.ok。現在,每個100表中都有CustomerID和Customer與客戶主鍵的關係。假設客戶「ID」爲1且這些ID爲1的客戶通過每個100個表。知道如果我想從Customer運行Qurey Delete,其中CustomerID = 1,則無法刪除它,因爲其關係ID在其他100個表上傳遞。我的問題是,如何知道那裏1 Id傳遞任何關係表只是回報我真實或不簡單:)。但我不喜歡逐個檢查每個talbe – Salman

相關問題