private void getClusteredIndexGlobal()

in src/PDWScripter/PDWscripter.cs [864:922]


        private void getClusteredIndexGlobal()
        {
            clusteredCols.Clear();
            string TableKey = "";
            string SchemaName;
            string TableName;
            string tableKeyPrevious = "";
            TableSt TableStruct = new TableSt();
            string clusterindexname = string.Empty;
            string clusterindexnamePrevious = string.Empty;

            cmd.CommandText =
               "select schema_name(tbl.schema_id) as SchemaName,tbl.Name as TableName,i.key_ordinal, c.name, i.is_descending_key, si.[type] as index_type ,si.name as indexname " +
               "from sys.indexes si " +
               "inner join sys.tables tbl on tbl.object_id=Si.object_id and tbl.type = 'U' " +
               "left join sys.index_columns i on i.object_id = si.object_id " +
               "left join sys.columns c on c.column_id = i.column_id and c.object_id = i.object_id " +
               "where i.index_id = 1 and si.[type] <> 2 " +
               "order by schema_name(tbl.schema_id),tbl.name,key_ordinal ";

            rdr = cmd.ExecuteReader();



            while (rdr.Read())
            {
                SchemaName = rdr.GetString(rdr.GetOrdinal("SchemaName"));
                TableName = rdr.GetString(rdr.GetOrdinal("TableName"));
                clusterindexname = rdr.GetString(rdr.GetOrdinal("indexname"));
                TableKey = SchemaName + "." + TableName;
                if (TableKey != tableKeyPrevious)
                {
                    if (clusteredCols.Count != 0 && (TableStruct != null))
                    {
                        TableStruct.clusteredcols.AddRange(clusteredCols);
                        TableStruct.ClusteredIndexName = clusterindexnamePrevious;
                    }
                    TableStruct = this.dbstruct.GetTable(TableKey);
                    clusteredCols.Clear();
                    tableKeyPrevious = TableKey;
                    clusterindexnamePrevious = clusterindexname;
                }


                clusteredCols.Add(new IndexColumnDef(
                    rdr.GetByte(rdr.GetOrdinal("key_ordinal")),
                    rdr.GetString(rdr.GetOrdinal("name")),
                    rdr.GetBoolean(rdr.GetOrdinal("is_descending_key")),
                    rdr.GetByte(rdr.GetOrdinal("index_type"))
                    ));
            }
            if (TableKey != "" && TableStruct != null)
            {
                TableStruct.clusteredcols.AddRange(clusteredCols);
                TableStruct.ClusteredIndexName = clusterindexname;
            }
            rdr.Close();

        }