MSSQL 테이블 컬럼 조회

hyeoncheol Lee·2022년 11월 30일

SQL

목록 보기
8/10
SELECT	 A.TABLE_NAME					AS TABLE_NAME		/*테이블*/
		,CONVERT(VARCHAR(200), B.VALUE)	AS TABLE_COMMENTS	/*테이블명*/
		,C.ORDINAL_POSITION				AS COLUMN_ID		/*순번*/
		,C.COLUMN_NAME					AS COLUMN_NAME		/*컬럼*/
		,CASE WHEN F.COLUMN_NAME IS NOT NULL THEN 'PK' ELSE NULL END AS PK_ORDER
		,UPPER(CAST(C.DATA_TYPE AS VARCHAR) + ISNULL( 
		 CASE WHEN C.DATA_TYPE IN ('numeric') 
				THEN '(' + CAST(C.NUMERIC_PRECISION AS VARCHAR) + ',' + CAST(C.NUMERIC_SCALE AS VARCHAR) + ')'
			  ELSE '(' + CASE WHEN C.CHARACTER_MAXIMUM_LENGTH = -1 THEN 'MAX'
							  ELSE CAST(C.CHARACTER_MAXIMUM_LENGTH AS VARCHAR)
						 END	  + ')'
		 END,''))							AS DATA_TYPE		/*타입*/
		,CASE WHEN C.IS_NULLABLE = 'NO' THEN 'Y' END AS IS_NOT_NULL /*NOT NULL*/
		,CONVERT(VARCHAR(200), D.VALUE)	AS COLUMN_COMMENTS	/*컬럼명*/
FROM	INFORMATION_SCHEMA.TABLES A WITH(NOLOCK)
		OUTER APPLY FN_LISTEXTENDEDPROPERTY('MS_Description', 'User','dbo','table', A.TABLE_NAME, NULL, NULL) B 
		LEFT OUTER JOIN INFORMATION_SCHEMA.COLUMNS C WITH(NOLOCK)
		ON	C.TABLE_NAME = A.TABLE_NAME
		OUTER APPLY FN_LISTEXTENDEDPROPERTY('MS_Description', 'User','dbo','table', C.TABLE_NAME, 'column', C.COLUMN_NAME) D 
		LEFT OUTER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS E WITH(NOLOCK) 
		ON	E.TABLE_NAME = A.TABLE_NAME
		AND	E.CONSTRAINT_TYPE = 'PRIMARY KEY'
		LEFT OUTER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE F WITH(NOLOCK) 
		ON	F.TABLE_NAME = E.TABLE_NAME
		AND F.CONSTRAINT_NAME = E.CONSTRAINT_NAME
		AND	F.COLUMN_NAME = C.COLUMN_NAME
WHERE	1 = 1
AND		A.TABLE_CATALOG = 'HIQ_ERP'	/* 유저*/
AND		A.TABLE_NAME = '테이블명'
ORDER	BY
		 A.TABLE_NAME	/*테이블*/
		,C.ORDINAL_POSITION	/*순번*/

테이블 컬럼 조회쿼리

profile
개발블로그

0개의 댓글