2016-10-16 65 views

回答

1

您要刪除的行包含一個外鍵到另一個表。如果刪除這個值,另一個表上的一些行將是孤立的,這是不允許的。

比方說你哈表一 INT ID 名稱爲nvarchar(20)

表B INT投標 someOtherName爲nvarchar(30)

如果第二個表已經出價爲外鍵指的是第一個表(創建爲

FOREIGN KEY (bid) REFERENCES A(id) ON DELETE NO ACTION) 

你會得到這個問題。解決方案取決於你想要的:你可以刪除表B中的任何行,當行I A被刪除:重建B中

(FOREIGN KEY (bid) REFERENCES A(id) ON DELETE CASCADE) 

或者是允許空值

(FOREIGN KEY (bid) REFERENCES A(id) ON DELETE NULL), 

,或者你可以丟棄表之間的關係。

0

我曾經有一個異常類似的問題。 我不舒爾,但是,你不應該這樣一個像以前一樣有一個代碼:

SqlConnection con = new SqlConnection(), 
爲了陳述源

此外,請檢查您的拼寫 - 有時而不是「sda」,例如,我寫「sdo」。 不幸的是,我無法進一步幫助你。
Daniel

0

檢查表是否有一列在某些其他表中被引用爲外鍵。

0

從錯誤文本(其中,作爲Prdp表明在評論你的問題,不是文本),你有一個外鍵從表中引用您的Commands表(或許叫DetailsCmd如果FK命名約定的圖片是好的),並且該表中的行引用了您要刪除的行。

先刪除DetailsCmd表中的引用行。或者,當您使用ON DELETE CASCADE子句刪除父數據時,可以更改外鍵以刪除子表中的行。我個人不喜歡這樣的「遠距離行動」,但你可能會這樣。