public IEnumerable <Index> GetIndexes(string tableName) { var indexes = new List <Index>(); using (var reader = Command.Create(SchemaWriter.CreateGetIndexesStatement(tableName), _profiler).ExecuteReader(_connectionManager)) { Index index = null; Index.ColumnSet columns = null; while (reader.Read()) { var name = (string)reader[TransactSql.System.Indexes.Name]; if (index == null || index.Name != name) { columns = new Index.ColumnSet(); index = new Index(name, (byte)reader[TransactSql.System.Indexes.Type] == 1, (bool)reader[TransactSql.System.Indexes.IsUnique], (bool)reader[TransactSql.System.Indexes.IsPrimaryKey], columns); indexes.Add(index); } columns.Add( (string)reader[SqlWriter.Aliases.ColumnName], (bool)reader[TransactSql.System.IndexColumns.IsDescendingKey]); } } return(indexes); }
public IEnumerable<Index> GetIndexes(string tableName) { var indexes = new List<Index>(); using (var reader = Command.Create(SchemaWriter.CreateGetIndexesStatement(tableName), _profiler).ExecuteReader(_connectionManager)) { Index index = null; Index.ColumnSet columns = null; while (reader.Read()) { var name = (string)reader[TransactSql.System.Indexes.Name]; if (index == null || index.Name != name) { columns = new Index.ColumnSet(); index = new Index(name, (byte)reader[TransactSql.System.Indexes.Type] == 1, (bool)reader[TransactSql.System.Indexes.IsUnique], (bool)reader[TransactSql.System.Indexes.IsPrimaryKey], columns); indexes.Add(index); } columns.Add( (string)reader[SqlWriter.Aliases.ColumnName], (bool)reader[TransactSql.System.IndexColumns.IsDescendingKey]); } } return indexes; }