반응형
인덱스 조회하기
- 조회되는 정보
- 인덱스를 구성하고있는 테이블 이름
- 정의한 인덱스 이름
- 인덱스로 지정한 컬럼 이름
- 고유 값 여부
- 기본 키 여부
- 데이터베이스 내의 모든 인덱스 조회
SELECT
t.name AS '테이블 이름',
ix.name AS '인덱스 이름',
c.name AS '컬럼 이름',
ix.is_unique AS '고유한 값 여부',
ix.is_primary_key AS '기본 키 여부'
FROM
sys.indexes ix
INNER JOIN
sys.tables t ON ix.object_id = t.object_id
INNER JOIN
sys.index_columns ic ON ix.object_id = ic.object_id AND ix.index_id = ic.index_id
INNER JOIN
sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
ORDER BY t.name;
- 특정 테이블의 인덱스 조회
- where절에 테이블명 입력
SELECT
t.name AS '테이블 이름',
ix.name AS '인덱스 이름',
c.name AS '컬럼 이름',
ix.is_unique AS '고유한 값 여부',
ix.is_primary_key AS '기본 키 여부'
FROM
sys.indexes ix
INNER JOIN
sys.tables t ON ix.object_id = t.object_id
INNER JOIN
sys.index_columns ic ON ix.object_id = ic.object_id AND ix.index_id = ic.index_id
INNER JOIN
sys.columns c ON ic.object_id = c.object_id AND ic.column_id = c.column_id
WHERE
t.name = --'테이블명 입력';
외래키 조회하기
- 조회되는 정보
- 정의한 외래키 이름
- 외래키를 지정한 테이블 이름
- 외래키를 지정한 컬럼 이름
- 외래키로 참조된 테이블 이름
- 외래키로 참조된 컬럼 이름
- 외래키 지정 순서
- 데이터베이스 내의 모든 외래키 조회
SELECT
fk.name AS '외래키 이름',
OBJECT_NAME(fkc.parent_object_id) AS '테이블 이름',
c1.name AS '컬럼 이름',
OBJECT_NAME(fkc.referenced_object_id) AS '참조된 테이블 이름',
c2.name AS '참조된 컬럼 이름',
fkc.constraint_column_id AS '외래키 순서'
FROM
sys.foreign_key_columns fkc
INNER JOIN
sys.columns c1 ON fkc.parent_column_id = c1.column_id AND fkc.parent_object_id = c1.object_id
INNER JOIN
sys.columns c2 ON fkc.referenced_column_id = c2.column_id AND fkc.referenced_object_id = c2.object_id
INNER JOIN
sys.foreign_keys fk ON fk.object_id = fkc.constraint_object_id
ORDER BY
OBJECT_NAME(fkc.parent_object_id), fkc.constraint_column_id;
- 특정 테이블의 외래키 조회
- where절에 테이블명 입력
SELECT
fk.name AS '외래키 이름',
OBJECT_NAME(fkc.parent_object_id) AS '테이블 이름',
c1.name AS '컬럼 이름',
OBJECT_NAME(fkc.referenced_object_id) AS '참조된 테이블 이름',
c2.name AS '참조된 컬럼 이름',
fkc.constraint_column_id AS '외래키 순서'
FROM
sys.foreign_key_columns fkc
INNER JOIN
sys.columns c1 ON fkc.parent_column_id = c1.column_id AND fkc.parent_object_id = c1.object_id
INNER JOIN
sys.columns c2 ON fkc.referenced_column_id = c2.column_id AND fkc.referenced_object_id = c2.object_id
INNER JOIN
sys.foreign_keys fk ON fk.object_id = fkc.constraint_object_id
WHERE
OBJECT_NAME(fkc.parent_object_id) = --'테이블명 입력'
ORDER BY
fkc.constraint_column_id;
반응형