Apr 11, 2018

Get table layout in sql server(테이블 레이아웃 추출 MS SQL)

SELECT
   TL.TABLE_NAME
  ,TL.COLUMN_NO
  ,TL.COLUMN_NAME
  ,ISNULL(TL.VALUE,'') AS DESCRIPTION
  ,CASE
WHEN TL.MAX_LENGTH IS NULL THEN TL.DATA_TYPE
WHEN TL.MAX_LENGTH IS NOT NULL AND TL.SCALE = '' THEN TL.DATA_TYPE+'('+CASE
WHEN TL.MAX_LENGTH < 0 THEN 'MAX'
ELSE ISNULL(CONVERT(NVARCHAR,TL.MAX_LENGTH),'')
   END+')'
WHEN TL.MAX_LENGTH IS NOT NULL AND TL.SCALE != '' THEN TL.DATA_TYPE+'('+CASE
WHEN TL.MAX_LENGTH < 0 THEN 'MAX'
ELSE ISNULL(CONVERT(NVARCHAR,TL.MAX_LENGTH),'')
   END+')' +','+CONVERT(NVARCHAR,TL.SCALE)+')'
   END AS DATA_TYPE
  ,TL.PRIMARYKEY
  ,TL.ALLOWNULLS
  ,TL.COLUMN_DEFAULT AS DEFAULTVALUE
FROM ( SELECT
    C.TABLE_NAME
   ,C.ORDINAL_POSITION AS COLUMN_NO
   ,C.COLUMN_NAME
   ,P.VALUE
   ,C.DATA_TYPE
   ,CASE
WHEN C.CHARACTER_MAXIMUM_LENGTH IS NULL THEN C.NUMERIC_PRECISION
ELSE C.CHARACTER_MAXIMUM_LENGTH
    END AS MAX_LENGTH
   ,CASE
WHEN C.NUMERIC_SCALE IS NULL THEN ''
WHEN C.NUMERIC_SCALE = 0 THEN ''
ELSE CONVERT(NVARCHAR, C.NUMERIC_SCALE)
    END AS SCALE
   ,ISNULL((SELECT 'YES'
   FROM   INFORMATION_SCHEMA.KEY_COLUMN_USAGE
   WHERE  OBJECTPROPERTY(OBJECT_ID(CONSTRAINT_SCHEMA + '.'
  + QUOTENAME(CONSTRAINT_NAME)), 'ISPRIMARYKEY') = 1
  AND TABLE_NAME = C.TABLE_NAME
  AND TABLE_SCHEMA = C.TABLE_SCHEMA
  AND COLUMN_NAME = C.COLUMN_NAME), '') AS PRIMARYKEY
   ,CASE
WHEN C.IS_NULLABLE = 'NO' THEN 'NOT NULL'
WHEN C.IS_NULLABLE = 'YES' THEN 'NULL'
    END AS ALLOWNULLS
   ,ISNULL(C.COLUMN_DEFAULT,'') AS COLUMN_DEFAULT
FROM   INFORMATION_SCHEMA.COLUMNS AS C
INNER JOIN SYS.OBJECTS AS O
ON O.NAME = C.TABLE_NAME
LEFT OUTER JOIN SYS.EXTENDED_PROPERTIES P ON P.MAJOR_ID = O.OBJECT_ID
           AND P.MINOR_ID = C.ORDINAL_POSITION
           AND P.CLASS = 1
           AND P.NAME = 'MS_DESCRIPTION'
WHERE  C.TABLE_NAME = 'VENDTRANS') AS TL

No comments:

Post a Comment