2012-10-11 2 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 서버 관리를 사용하는 경우 Studio,

테이블을 마우스 오른쪽 버튼으로 클릭하고 View Dependencies을 클릭하면 테이블에 종속 된 모든 opjects를 알 수 있습니다. 또한 테이블이있는 개체 해당 옵션 버튼을 선택하여 달라집니다.

당신이하기 전에 당신이 떨어 뜨리고있는 개체와 그들이 갖고있는 중요성을 알면 좋습니다.

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') 
:
0

은 Zip_Codes 테이블을 가리키는 외래 키가있는 모든 테이블을 찾으려면
관련 문제