어떤 테이블을 삭제하려고 할 때 "FOREIGN KEY 제약 조건에서 참조하므로 삭제할 수 없습니다" 라는 오류가 나면서
삭제가 안되는 경우가 있다. 이는 해당 테이블을 외래키로 참조하는 다른 테이블이 존재 하기 때문 이다.
그런데 삭제 하려는 테이블 자체에 대한 외래키 제약조건은 sp_helpconstraint 로 확인 할 수 있으나,
해당 테이블을 참조하는 다른 테이블은 sp_helpconstraint 로는 알 수가 없다.
이럴때는 다음과 같이 하면 참조하고 있는 다른 테이블과 연결된 컬럼명을 확인 할 수 있다.
SELECT f.name, OBJECT_NAME(f.parent_object_id) TableName, COL_NAME(fc.parent_object_id,fc.parent_column_id) ColName FROM sys.foreign_keys AS f INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id INNER JOIN sys.tables t ON t.OBJECT_ID = fc.referenced_object_id WHERE OBJECT_NAME (f.referenced_object_id) = '테이블명'
'데이터베이스' 카테고리의 다른 글
[SQL서버] 트리거에서 수정된 컬럼 확인 (0) | 2016.08.03 |
---|---|
[SQL서버] 트리거에서 RAISERROR 발생 시키면? (0) | 2015.01.13 |
[SQL서버] 분산 트랜잭션 (1) | 2014.09.18 |
[SQL서버] 동적쿼리에서 파라미터 사용 (0) | 2014.07.22 |
[SQL서버] RANK() 함수 (0) | 2014.06.26 |