private void getSourceColumnsGlobal()

in src/PDWScripter/PDWscripter.cs [524:585]


        private void getSourceColumnsGlobal()
        {

            List<ColumnDef> columns = new List<ColumnDef>();
            string TableKey = "";
            string SchemaName;
            string TableName;
            string tableKeyPrevious = "";
            TableSt TableStruct = new TableSt();
            cmd.CommandText =
                   @"select  schema_name(tbl.schema_id) as SchemaName,tbl.Name as TableName, c.column_id, c.name, t.name as type, c.max_length, c.precision,
                        c.scale, c.is_nullable, d.distribution_ordinal, c.collation_name, ISNULL('DEFAULT ' + dc.definition, '') as DefaultConstraint
                            from sys.columns c
                                join sys.pdw_column_distribution_properties d
                                on c.object_id = d.object_id and c.column_id = d.column_id
                                    join sys.types t on t.user_type_id = c.user_type_id
                                        left join sys.default_constraints dc on c.default_object_id = dc.object_id and c.object_id = dc.parent_object_id
                                            inner join sys.tables tbl on tbl.object_id = c.object_id and tbl.type = 'U'
                                                order by schema_name(tbl.schema_id),tbl.name, Column_Id ";
            rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                SchemaName = rdr.GetString(rdr.GetOrdinal("SchemaName"));
                TableName = rdr.GetString(rdr.GetOrdinal("TableName"));
                TableKey = SchemaName + "." + TableName;
                if (TableKey != tableKeyPrevious)
                {
                    if (columns.Count != 0 && (TableStruct != null))
                    {
                        TableStruct.Columns = columns;
                    }
                    TableStruct = this.dbstruct.GetTable(TableKey);


                    columns = new List<ColumnDef>();
                    tableKeyPrevious = TableKey;
                }

                columns.Add(new ColumnDef(
                    rdr.GetInt32(rdr.GetOrdinal("column_id")),
                    rdr.GetString(rdr.GetOrdinal("name")),
                    rdr.GetString(rdr.GetOrdinal("type")),
                    rdr.GetInt16(rdr.GetOrdinal("max_length")),
                    rdr.GetByte(rdr.GetOrdinal("precision")),
                    rdr.GetByte(rdr.GetOrdinal("scale")),
                    rdr.GetBoolean(rdr.GetOrdinal("is_nullable")),
                    rdr.GetByte(rdr.GetOrdinal("distribution_ordinal")),
                    rdr.GetString(rdr.GetOrdinal("DefaultConstraint")),
                    rdr["collation_name"] == DBNull.Value ? string.Empty : (string)rdr["collation_name"]
                    ));

            }
            if (columns.Count != 0 && (TableStruct != null))
            {
                TableStruct.Columns = columns;
            }

            rdr.Close();


        }