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 /*순번*/
테이블 컬럼 조회쿼리