반응형
mssql 테이블 명세서 (정의서)
테이블 명세서 쿼리, 테이블 정의서 쿼리 작성 내용입니다.
mssql 쿼리
- 테이블명세서 (정의서) 내용입니다.
- [테이블 설명], [칼럼명], [칼럼 COMMENT], [DATA TYPE], [길이], [소수점], [기본값], [NOT NULL여부], [PK 여부]
SELECT
T.NAME AS TABLE_NAME, -- 테이블 명
EP.VALUE AS TABLE_COMMENT, -- 테이블 설명
C.NAME AS COLUMN_NAME, -- 컬럼명
EPC.VALUE AS COLUMN_COMMENT, -- 컬럼COMMENT
TP.NAME AS DATA_TYPE, -- DATA TYPE
C.MAX_LENGTH AS LENGTH, -- 길이
C.SCALE AS SCALE, -- 소수점
DC.DEFINITION AS DEFAULT_VALUE, -- 기본값
CASE C.IS_NULLABLE WHEN 1 THEN 'YES' ELSE 'NO' END AS IS_NULLABLE, -- NOT NULL여부
CASE WHEN PK.COLUMN_ID IS NOT NULL THEN 'YES' ELSE 'NO' END AS IS_PK -- PK 여부
FROM
SYS.TABLES T
JOIN SYS.COLUMNS C ON T.OBJECT_ID = C.OBJECT_ID
JOIN SYS.TYPES TP ON C.USER_TYPE_ID = TP.USER_TYPE_ID
LEFT JOIN SYS.EXTENDED_PROPERTIES EP ON T.OBJECT_ID = EP.MAJOR_ID AND EP.MINOR_ID = 0
LEFT JOIN SYS.EXTENDED_PROPERTIES EPC ON T.OBJECT_ID = EPC.MAJOR_ID AND C.COLUMN_ID = EPC.MINOR_ID
LEFT JOIN SYS.DEFAULT_CONSTRAINTS DC ON C.DEFAULT_OBJECT_ID = DC.OBJECT_ID -- 기본값 참조
LEFT JOIN (
SELECT
I.OBJECT_ID, IC.COLUMN_ID
FROM
SYS.INDEXES I
JOIN SYS.INDEX_COLUMNS IC ON I.OBJECT_ID = IC.OBJECT_ID AND I.INDEX_ID = IC.INDEX_ID
WHERE
I.IS_PRIMARY_KEY = 1
) PK ON C.OBJECT_ID = PK.OBJECT_ID AND C.COLUMN_ID = PK.COLUMN_ID
ORDER BY
T.NAME, C.COLUMN_ID;
- TABLE_NAME: 테이블의 이름을 나타냅니다.
- TABLE_COMMENT: 테이블에 대한 설명(확장 속성)을 가져옵니다.
- COLUMN_NAME: 칼럼의 이름을 나타냅니다.
- COLUMN_COMMENT: 칼럼에 대한 설명(확장 속성)을 가져옵니다.
- DATA_TYPE: 칼럼의 데이터 타입을 나타냅니다.
- LENGTH: 문자열 칼럼의 최대 길이를 나타냅니다.
- SCALE: 숫자 칼럼의 소수점 이하 자릿수를 나타냅니다.
- DEFAULT_VALUE: 칼럼의 기본값을 나타냅니다.
- IS_NULLABLE: 칼럼이 NULL을 허용하는지 여부를 나타냅니다.
- IS_PK: 해당 칼럼이 PRIMARY KEY인지 여부를 나타냅니다.
반응형
'db > mssql' 카테고리의 다른 글
MSSQL 버전 확인 하는 방법 (0) | 2024.12.02 |
---|---|
mssql 테이블 설명 (0) | 2024.08.19 |
windows mssql on/off 자동 실행 (0) | 2024.06.06 |
mssql server 설치(SQL Server 2022 설치), SSMS 설치 (0) | 2024.04.03 |
mssql xml 파싱(mssql xml parsing) (0) | 2024.02.05 |