在刪除northwindcs表時,發生報錯,消息 3726,級別 16,狀態 1,第 2 行,無法刪除對象 '產品',因為該對象正由一個 FOREIGN KEY 約束引用。此時判斷是因為有其他表的外鍵引用了本表,導致無法刪除。下面腳本可查詢本表是由哪個表的哪個外鍵引用:
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 = '產品'
得到如下結果,訂單明細表上有一各名為‘FK_訂單明細_產品’的外鍵引用了產品表,
NAME | OBJECT_ID | REFERENCETABLENAME |
FK_訂單明細_產品 | 1.416E+09 | 訂單明細 |
刪除訂單明細表的該外鍵,就可刪除產品表:
ALTER TABLE dbo.訂單明細 DROP CONSTRAINT FK_訂單明細_產品