有時想刪除某個表時,提示「無法刪除物件 '表名',因為該物件正由乙個 foreign key 約束引用」,原因是它被其它表的外來鍵引用了,所以無法刪除。在此只需先找到哪些表的外來鍵引用了該錶的字段。通過系統函式就能解決(sql server系統函式提供了非常完善的功能,能代替我們查詢和解決許多問題)。
select
fk.name,fk.object_id,object_name(fk.parent_object_id) as referencetablename
from sys.foreign_keys as fk
join sys.objects as o on fk.referenced_object_id=o.object_id
where o.name='要刪除的表名'
以上sql語句能夠得到某個表被哪些外來鍵引用,並且也顯示出了外來鍵表的表名。通過外來鍵表的表名和外來鍵名稱執行以下語句即可刪除外來鍵。
alter table dbo.被引用的表名 drop constraint 外鍵名
將先前查詢語句查出的外來鍵列表一一刪除外來鍵,再執行刪除表操作即可。
關於鍵值為其它表的外來鍵約束時,無法刪除表的問題
rdrecord 的主鍵為 id rdrecords的主鍵為 autoid 外建為 id 鏈結的是 rdrecord的id 當刪除 rdrecord 某個id時,出現錯誤 語句已終止。訊息 547,級別 16,狀態 1,第 1 行 delete 語句與 column reference 約束 fk ...
MySQL 如何刪除有外來鍵約束的表資料
在mysql中刪除一張表或一條資料的時候,出現 1 err 1451 cannot delete orupdate a parent row aforeign key constraint fails 這是因為mysql中設定了foreign key關聯,造成無法更新或刪除資料。可以通過設定fore...
MySQL 如何刪除有外來鍵約束的表資料
在mysql中刪除一張表或一條資料的時候,出現 err 1451 cannot deleteorupdatea parent row aforeignkeyconstraintfails 這是因為mysql中設定了foreign key關聯,造成無法更新或刪除資料。可以通過設定foreign key...