sql完美刪除外來鍵約束,避免產生問題

2022-02-08 04:02:10 字數 1012 閱讀 3372

解決無法刪除表,提示被外來鍵約束引用

有時想刪除某個表時,提示「無法刪除物件 'orders',因為該物件正由乙個 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 外鍵名

有時想刪除某個表時,提示「無法刪除物件 'orders',因為該物件正由乙個 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 外鍵名

刪除外來鍵約束

主表 create table test1 id int primary key not null,value int insert test1 select 1,2 go 從表 create table test2 id int references test1 id value int go 第...

Mysql刪除外來鍵約束

通常有關聯的兩張表,我們都會進行主外來鍵約束。但是有時候我們可能需要去除主外來鍵約束,下面我會告訴大家怎麼去除主外來鍵約束。note就是外來鍵約束的表 show create table note 執行後會出現類似下面的 這裡的note ibfk 1 note ibfk 2.就是約束的外來鍵名稱。c...

sql server怎樣刪除外來鍵約束

測試環境 主表create table test1 id int primary key not null,value int insert test1 select 1,2go 從表create table test2 id int references test1 id value int go...