2012-10-11 67 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')