2016-07-20 3 views
1

이상한 상황이 있습니다. 기본 키 열을 알고 있지만 테이블이 아닌 경우를 알고 있습니다.기본 키를 알고있는 테이블 찾기

누구나 그 정보를 쉽게 찾을 수 있습니까? sp_pkeys가 그 일을 할 수 있기를 바랬지 만 열로 매개 변수를 사용할 수는 없습니다.

편집 : 이것은 있는 테이블을 찾고 동일하지 않습니다 (난 이미 그렇게하는 방법을 알고). 특정 기본 키 ("duplicate question"의 하위 집합) 테이블을 찾고 있습니다.

+0

가능한 복제 (http://stackoverflow.com/questions/4849652/find-all-tables-containing-column-with-specified-name) –

+0

없음 , 같은 질문이 아닙니다. 특정 열이있는 테이블을 찾는 방법을 이미 알고 있습니다. 특정 기본 키가있는 테이블을 찾고 있습니다. –

답변

2
SELECT COLUMN_NAME, TABLE_NAME 
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE 
WHERE OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.' + CONSTRAINT_NAME), 'IsPrimaryKey') = 1 
AND COLUMN_NAME = 'yourColumnName' 
+0

이것은 작동하는 것 같습니다! –

1

여기에 다른 방법이 있습니다.

select OBJECT_NAME(c.Object_ID) 
from sys.columns c 
join sys.indexes i on c.object_id = i.object_id 
where i.is_primary_key = 1 
    and c.name = 'YourColumn' 
[지정된 이름을 가진 열을 포함하는 모든 테이블을 찾기]의
+0

나를 위해 작동하지 않았다 - 그것을 테스트하기 위해, 나는 결과와 함께 sp_pkeys를 실행 해 보았다. 그리고 나에게 다른 칼럼을 가진 PK를 준 답을 주었다. 죄송합니다. –

+0

다른 스키마에 같은 이름의 테이블이있을 수도 있습니다. 오 잘 ... 당신에게 맞는 대답이있는 것처럼 보입니다. –

+0

아마도. SSC에서 당신을 알기 때문에 저는 편견을 가지고 답으로 당신의 것을 표시하고 싶지만 c'est la vie. :-) 오 잘. –

관련 문제