2020년 2월 12일 수요일

[SQL Server] Get list PK list

SQL ver: SQL Server 2017 standard

보통은 테이블에 PK를 두지만 세상 일이란게 꼭 그렇지 않고, 또 누군가의 업무를 받았을 때 해당 DB 파악을 위해 확인하는 것이 좋다.
내 경우는 INDEX는 서비스 중에 거는 것을 선호하지만 PK는 반드시 걸려고 한다.

SELECT t.TABLE_SCHEMA, t.TABLE_NAME, tc.CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLES AS t
LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS tc ON t.TABLE_SCHEMA = tc.CONSTRAINT_SCHEMA AND t.TABLE_NAME = tc.TABLE_NAME
AND tc.CONSTRAINT_TYPE = 'PRIMARY KEY' AND tc.CONSTRAINT_SCHEMA <> 'sys'
ORDER BY t.TABLE_SCHEMA, t.TABLE_NAME

간단하게 Information_schema 정보들을 활용해서 리스트를 확인했다.

tc.COONSTRAINT_NAME의 값이 NULL이라면 해당 테이블에 PRIMARY KEY가 없는 것이므로 설정해주는 것이 좋다.




댓글 없음:

댓글 쓰기