2012-10-11 69 views
0

我想從表中刪除外鍵約束,但不知道這表是。我只有這些信息。請檢查屏幕截圖 enter image description here如何刪除外鍵約束

我想刪除一個表,但由於某些FK限制,它不允許我刪除。表我要刪除是「ZIP_Codes」

回答

2

這個查詢將給外鍵名和引用表名

SELECT CAST(F.NAME AS VARCHAR(255)) AS FOREIGN_KEY_NAME 
, CAST(P.NAME AS VARCHAR(255)) AS PARENT_TABLE 
FROM SYSOBJECTS F 
INNER JOIN SYSREFERENCES R ON F.ID = R.CONSTID 
INNER JOIN SYSOBJECTS P ON R.RKEYID = P.ID 
INNER JOIN SYSCOLUMNS RC ON R.RKEYID = RC.ID AND R.RKEY1 = RC.COLID 
WHERE F.TYPE = 'F' 
1

試試這個:

DECLARE @parent_object_id int; 
DECLARE @TableName varchar(255); 
SET @parent_object_id = 1234103437; 

SELECT @TableName = OBJECT_NAME(object_id) 
FROM sys.objects 
Where object_id = @parent_object_id; 

ALTER TABLE [TableName] DROP CONSTRAINT [ForeignKeyName] 
1

如果使用SQL Server管理工作室,

右鍵單擊您的表格,然後單擊View Dependencies以瞭解依賴於您的表格的所有選項..您還可以查看您桌子上的所有對象通過選擇相應的選項按鈕取決於..

其更好地瞭解哪些對象您要刪除什麼意義,他們有,你這樣做之前。

0

要找到有外鍵指向您的Zip_Codes表中的所有表:

select object_schema_name([parent_object_id]), object_name([parent_object_id]), [name] 
from sys.foreign_keys 
where referenced_object_id = object_id('ZIP_Codes')