private void DropIndex(string tableName, DataTypeIndex index)
        {
            string indexName = GetIndexName(index);

            var sql = string.Format("DROP INDEX [{0}] ON [{1}]", indexName,  tableName);

            ExecuteNonQuery(sql);
        }
 private string GetIndexName(DataTypeIndex index)
 {
     var result = new StringBuilder().Append("IX_");
     foreach (var field in index.Fields)
     {
         result.Append('_').Append(field.Item1);
     }
     return result.ToString();
 }
        private void CreateIndex(string tableName, DataTypeIndex index)
        {
            string indexName = GetIndexName(index);

            var fields = new StringBuilder();
            foreach (var field in index.Fields)
            {
                if (fields.Length > 0)
                {
                    fields.Append(", ");
                }
                fields.Append('[').Append(field.Item1).Append(']');
                if (field.Item2 == IndexDirection.Descending)
                {
                    fields.Append(" DESC");
                }
            }

            var sql = string.Format("CREATE {0}CLUSTERED INDEX [{1}] ON [{2}] ({3})",
                            !index.Clustered ? "NON" : "",
                            indexName,
                            tableName,
                            fields);

            ExecuteNonQuery(sql);
        }