/// <summary>
 /// Visits the given <paramref name="removeConstraintNode"/>.
 /// </summary>
 /// <param name="removeConstraintNode"></param>
 public override void Visit(IRemoveConstraintNode removeConstraintNode)
 {
     Visit(removeConstraintNode.ChildNodes);
 }
 public override void Visit(IRemoveConstraintNode removeConstraintNode)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Visits the given <paramref name="removeConstraintNode"/>.
 /// </summary>
 /// <param name="removeConstraintNode"></param>
 public override void Visit(IRemoveConstraintNode removeConstraintNode)
 {
     //
     // If we have a "table" property, use that
     if(removeConstraintNode.Properties[MdlSyntax.Table] != null)
         removeConstraintNode.Table = AstNodePropertyUtil.AsString(removeConstraintNode.Properties, MdlSyntax.Table);
     else
     {
         if(removeConstraintNode.Parent is IAlterTableNode)
             removeConstraintNode.Table = ((IAlterTableNode)removeConstraintNode.Parent).Name;
     } // else
 }
        public override void Visit(IRemoveConstraintNode removeConstraintNode)
        {
            textWriter.Write("remove constraint {0}", GetIdentifier(removeConstraintNode.Name));

            WriteProperties(removeConstraintNode);
            VisitBlock(removeConstraintNode);
        }
        /// <summary>
        /// Visits the given <paramref name="addConstraintNode"/>.
        /// </summary>
        /// <param name="addConstraintNode"></param>
        /*public override void Visit(IAddConstraintNode addConstraintNode)
        {
            if(IsImmediateChildOf<IColumnNode>(addConstraintNode))
                MoveNodeTo(addConstraintNode, addConstraintNode.Parent.Parent.Parent);
            else if(IsImmediateChildOf<IAddTableNode>(addConstraintNode) || IsImmediateChildOf<IAlterTableNode>(addConstraintNode))
                MoveNodeTo(addConstraintNode, addConstraintNode.Parent.Parent);
        }*/

        /// <summary>
        /// Visits the given <paramref name="removeConstraintNode"/>.
        /// </summary>
        /// <param name="removeConstraintNode"></param>
        public override void Visit(IRemoveConstraintNode removeConstraintNode)
        {
            if(IsImmediateChildOf<IAlterColumnNode>(removeConstraintNode))
                MoveNodeTo(removeConstraintNode, removeConstraintNode.Parent.Parent.Parent);
            else if(IsImmediateChildOf<IAlterTableNode>(removeConstraintNode.Parent))
                MoveNodeTo(removeConstraintNode, removeConstraintNode.Parent.Parent);
        }