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); }