net.datacowboy.SqlServerDatabaseDocumentationGenerator.Inspection.ColumnInspector.queryForTableColumns C# (CSharp) Method

queryForTableColumns() private method

private queryForTableColumns ( Table parentTable ) : List
parentTable net.datacowboy.SqlServerDatabaseDocumentationGenerator.Model.Table
return List
        private List<Column> queryForTableColumns(Table parentTable)
        {
            //petapoco's automapping columns has issues with smallint so we'll explicity convert to int in query
            var sql = new Sql(@"SELECT C.name AS ColumnName
                        , EP.value AS [Description]
                        , I.DATA_TYPE AS BaseDataTypeName
                        , I.CHARACTER_MAXIMUM_LENGTH AS MaximumLength
                        , C.is_nullable AS AllowNull
                        , CONVERT(INT, I.NUMERIC_PRECISION) AS Precision
                        , CONVERT(INT, I.NUMERIC_SCALE) AS Scale
                        , C.object_id AS ColumnId
                        , I.COLUMN_DEFAULT AS DefaultValue
                        , C.is_identity AS IsIdentity
                        , C.is_computed AS IsComputed
                        , Y.name AS TypeName
                        , Y.is_user_defined AS IsUserDefinedType

                    FROM sys.tables AS T
                        INNER JOIN sys.schemas AS S
                            ON ( T.schema_id = S.schema_id )
                        INNER JOIN sys.columns AS C
                            ON ( T.object_id = C.object_id )
                        INNER JOIN sys.types AS Y
                            ON ( Y.user_type_id  = C.user_type_id )
                        INNER JOIN INFORMATION_SCHEMA.COLUMNS AS I
                            ON ( I.TABLE_SCHEMA = S.[name] AND I.TABLE_NAME = T.[name] AND I.COLUMN_NAME = C.[name] )
                        LEFT OUTER JOIN sys.extended_properties AS EP
                            ON ( EP.class = 1 AND EP.major_id = C.object_id AND EP.minor_id = C.column_id AND EP.name = 'MS_Description' )

                    WHERE T.object_id = @0

                    ORDER BY C.column_id, C.name;", parentTable.TableId);

            return this.peta.Fetch<Column>(sql);
        }