/// <summary> /// Creates a query for creation or alteration of a view /// </summary> /// <param name="sb">StringBuilder to write the query in</param> /// <param name="actionName">The name of the requested action</param> private void CreateQuery(StringBuilder sb, string actionName) { // Adding the name of the action sb.Append(actionName); // Adding an algorithm if (Algorithm != Algorithms.UNDEFINED) { sb.Append(" ALGORITHM = "); sb.Append(Algorithm.ToString()); } // Adding definer if not current user string definer = DataInterpreter.GetStringNotNull(Attributes, View.Definer); if (!DataInterpreter.CompareInvariant(definer, CurretnUser)) { QueryBuilder.WriteUserNameIfNotEmpty(definer, " DEFINER = ", sb); } // Adding security type, if are not empty QueryBuilder.WriteIfNotEmptyString(Attributes, View.SecurityType, " SQL SECURITY ", sb, false); // Adding definition of a view sb.Append(" VIEW "); QueryBuilder.WriteIdentifier(Attributes, View.Name, sb); sb.Append(" AS "); sb.AppendLine(); QueryBuilder.WriteValue(Attributes, View.Definition, sb, false); // Adding check options if (CheckOption != CheckOptions.NONE) { sb.AppendLine(); sb.Append(" WITH "); sb.Append(CheckOption.ToString()); sb.Append(" CHECK OPTION"); } }