[MS-SQL] 테이블 정보 가져오기

다음과 같은 SQL 구문을 이용해서 테이블의 구성 정보를 읽어 들일 수 있다.

      QUOTENAME(SCHEMA_NAME(tb.schema_id))    [Schema]
    , QUOTENAME(OBJECT_NAME(tb.object_id))    [Table]
    , col.name                                [Column]
    , sep.value                                [Description]
    , typ.name                                [Type]
    , col.max_length                        [Length]
    , CASE
            WHEN col.is_nullable = 1 Then 'Yes'
            WHEN col.is_nullable = 0 Then 'No'
      END                                    [Nullable]
    , col.column_id
    , CASE
        WHEN idx.constraint_name IS NOT NULL AND idx.COLUMN_NAME = col.name Then 'Yes'
        ELSE ''
      END                                    [Identity]

FROM SYS.COLUMNS col INNER JOIN SYS.TABLES tb ON tb.object_id = col.object_id
    INNER JOIN SYS.TYPES typ ON col.system_type_id = typ.user_type_id
    LEFT JOIN SYS.EXTENDED_PROPERTIES sep ON tb.object_id = sep.major_id AND col.column_id = sep.minor_id
    LEFT JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE idx ON tb.name = idx.table_name AND idx.constraint_name like 'P%'
WHERE tb.is_ms_shipped = 0
ORDER BY tb.name   


가장 많이 본 글