CREATE OR ALTER PROCEDURE [dbo].[P_INFO_TABLE] @TABLE_NAME sysname, @table_schema sysname = NULL AS SELECT CASE WHEN A.ORDINAL_POSITION = 1 THEN A.TABLE_NAME ELSE '' END AS TABLE_NAME, CASE WHEN A.ORDINAL_POSITION = 1 THEN C.TABLE_COMMENT ELSE '' END AS TABLE_COMMENT, A.COLUMN_NAME, B.COLUMN_COMMENT, A.DATA_TYPE, ISNULL(CAST(A.CHARACTER_MAXIMUM_LENGTH AS VARCHAR), ISNULL(CAST(A.NUMERIC_PRECISION AS VARCHAR) + ',' + CAST(A.NUMERIC_SCALE AS VARCHAR), '')) AS COLUMN_LENGTH, CASE WHEN A.IS_NULLABLE = 'YES' THEN 'Y' ELSE 'N' END AS IS_NULLABLE, CASE WHEN A.COLUMN_DEFAULT IS NOT NULL THEN A.COLUMN_DEFAULT ELSE '' END AS COLUMN_DEFAULT, A.COLUMN_NAME + N', -- ' + ISNULL(CONVERT(VARCHAR(MAX), B.COLUMN_COMMENT),'') AS WOW FROM INFORMATION_SCHEMA.COLUMNS A LEFT OUTER JOIN (SELECT OBJNAME COLUMN_NAME , VALUE COLUMN_COMMENT FROM ::FN_LISTEXTENDEDPROPERTY(NULL, isnull(@table_schema,'user'), 'DBO', 'TABLE', @TABLE_NAME, 'COLUMN', DEFAULT) WHERE NAME = 'MS_Description' ) B ON A.COLUMN_NAME = B.COLUMN_NAME COLLATE Korean_Wansung_CI_AS LEFT OUTER JOIN ( SELECT OBJNAME AS TABLE_NAME, VALUE TABLE_COMMENT FROM ::FN_LISTEXTENDEDPROPERTY (N'MS_Description', isnull(@table_schema,'user'),'dbo','table', @TABLE_NAME, NULL, NULL) ) C ON A.TABLE_NAME = C.TABLE_NAME COLLATE Korean_Wansung_CI_AS WHERE A.TABLE_NAME = @TABLE_NAME ORDER BY A.TABLE_NAME, A.ORDINAL_POSITION