DB
[MSSQL] 테이블 정의서 작성 쿼리
91cm
2018. 9. 14. 00:05
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | SELECT A.COLUMN_NAME as 컬럼명 , A.DATA_TYPE as 데이터타입 , CASE WHEN A.CHARACTER_MAXIMUM_LENGTH IS NULL THEN ISNULL (A.NUMERIC_PRECISION, '') ELSE A.CHARACTER_MAXIMUM_LENGTH END AS [길이] , CASE WHEN A.COLUMN_DEFAULT is null THEN '' ELSE A.COLUMN_DEFAULT END AS [기본값] , CASE WHEN C.TABLE_NAME IS NOT NULL THEN 'PK' ELSE '' END PK , ' ' as 컬럼설명 , CASE WHEN B.DESCRIPTION IS NULL THEN '' ELSE B.DESCRIPTION END AS 기타정보 ,CASE WHEN A.IS_NULLABLE = 'YES' THEN 'YES' ELSE 'NO' END AS IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS A LEFT OUTER JOIN (SELECT a.object_id AS TABLE_ID, a.name AS TABLE_NAME, b.name AS COLUMN_NAME, b.column_id AS COLUMN_ID, c.value AS DESCRIPTION FROM sys.objects a LEFT JOIN sys.columns b ON a.object_id=b.object_id LEFT JOIN sys.extended_properties c ON (a.object_id=c.major_id AND b.column_id=c.minor_id) ) B ON A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME LEFT OUTER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE C ON A.TABLE_NAME = C.TABLE_NAME AND A.COLUMN_NAME = C.COLUMN_NAME WHERE A.TABLE_NAME ='테이블명' | cs |