private void getStatsGlobal()

in src/PDWScripter/PDWscripter.cs [1157:1219]


        private void getStatsGlobal()
        {
            stats.Clear();
            string statname = "";
            StatDef statdef = null;
            string TableKey = "";
            string SchemaName;
            string TableName;
            string tableKeyPrevious = "";
            TableSt TableStruct = new TableSt();
            string statnamePrevious = "";


            cmd.CommandText =
               "select schema_name(tbl.schema_id) as SchemaName,tbl.name as TableName,s.name as stat_name, sc.stats_column_id, c.name " +
               "from sys.stats s " +
                "inner join sys.tables tbl on tbl.object_id=s.object_id and tbl.type = 'U' " +
               "join sys.stats_columns sc on s.stats_id = sc.stats_id and s.object_id = sc.object_id " +
               "join sys.columns c on c.column_id = sc.column_id  and c.object_id = sc.object_id " +
              "and user_created=1 " +
               "order by schema_name(tbl.schema_id),tbl.name,s.name, sc.stats_column_id ";

            rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                SchemaName = rdr.GetString(rdr.GetOrdinal("SchemaName"));
                TableName = rdr.GetString(rdr.GetOrdinal("TableName"));
                statname = rdr.GetString(rdr.GetOrdinal("stat_name"));
                TableKey = SchemaName + "." + TableName;
                if (TableKey != tableKeyPrevious)
                {
                    if (stats.Count != 0 && TableStruct != null)
                    {
                        TableStruct.statistics.AddRange(stats);
                    }
                    TableStruct = this.dbstruct.GetTable(TableKey);
                    stats.Clear();
                    tableKeyPrevious = TableKey;

                }

                if (TableStruct != null)
                {
                    if (statname != statnamePrevious)
                    {
                        statname = rdr.GetString(rdr.GetOrdinal("stat_name"));
                        statdef = new StatDef(statname);
                        TableStruct.statistics.Add(statdef);
                        statnamePrevious = statname;
                    }


                    statdef.cols.Add(new StatColumnDef(
                        rdr.GetInt32(rdr.GetOrdinal("stats_column_id")),
                        rdr.GetString(rdr.GetOrdinal("name"))
                        ));
                }

            }

            rdr.Close();
        }