Exemple #1
0
        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);
        }
Exemple #2
0
 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;
 }