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