반응형
[MSSQL] 데이터베이스 테이블 모든 컬럼명 조회 쿼리입니다.
INFORMATION_SCHEMA.COLUMNS 테이블에
INFORMATION_SCHEMA.KEY_COLUMN_USAGE 테이블을 LEFT OUTER JOIN 하여 추출하는 쿼리 입니다.
조회 컬럼은 카탈로그, 스키마, 테이블명, 컬럼명, 데이터 타입(데이터 형식과 크기), 기본키(RPIMARY_KEY), 데이터 정렬 방식, 널(NULL) 값 허용으로 설정 했습니다.
스키마, 테이블명, 컬럼 순서 순으로 오름차순 정렬했습니다.
Database_name 부분에 데이터베이스 명을 넣어주시면 됩니다.
SELECT A.TABLE_CATALOG,A.TABLE_SCHEMA, A.TABLE_NAME, A.COLUMN_NAME,
CASE WHEN A.DATA_TYPE = 'VARCHAR' AND A.CHARACTER_MAXIMUM_LENGTH = '-1' THEN CONVERT(VARCHAR,A.DATA_TYPE) + '(MAX)'
WHEN A.DATA_TYPE = 'VARCHAR'THEN CONVERT(VARCHAR,DATA_TYPE) + '('+ CONVERT(VARCHAR,A.CHARACTER_MAXIMUM_LENGTH) +')'
WHEN A.DATA_TYPE = 'NVARCHAR' AND A.CHARACTER_MAXIMUM_LENGTH = '-1' THEN CONVERT(VARCHAR,A.DATA_TYPE) + '(MAX)'
WHEN A.DATA_TYPE = 'NVARCHAR'THEN CONVERT(VARCHAR,DATA_TYPE) + '('+ CONVERT(VARCHAR,A.CHARACTER_MAXIMUM_LENGTH) +')'
ELSE A.DATA_TYPE
END AS DATA_TYPE
, CASE WHEN B.COLUMN_NAME IS NOT NULL THEN 'PRI'
END AS RPIMARY_KEY
, A.COLLATION_NAME, A.IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS A
LEFT OUTER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE B
ON A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME
WHERE A.TABLE_CATALOG = 'Database_name'
ORDER BY A.TABLE_SCHEMA,A.TABLE_NAME,A.ORDINAL_POSITION
반응형
'SQL > MSSQL' 카테고리의 다른 글
[MSSQL] With 절 사용 방법 (0) | 2023.03.13 |
---|---|
[MSSQL] Create Temp Table / 임시 테이블 생성 쿼리 (0) | 2023.03.12 |
[MSSQL] SQL SERVER Table NOLOCK 쿼리 (0) | 2023.03.11 |
[MSSQL] Truncate Table / 테이블 데이터 전체 삭제 쿼리 (0) | 2023.03.10 |
[MSSQL] Delete Table 테이블 데이터 삭제 방법 및 예시 (0) | 2023.03.10 |
[MSSQL] Update Table / 테이블 업데이트 쿼리 (0) | 2023.03.10 |
[MSSQL] Create Table / 테이블 생성 쿼리 (0) | 2023.03.09 |
[MSSQL] 데이터베이스 인덱스 조각화 조회 쿼리 (0) | 2022.12.03 |