public virtual void Visit(SchemaCommand sc)
        {
            switch (sc.CommandType)
            {
                case SchemaCommandType.CreateTable:
                    this.VisitCreateTable((CreateTableCommand)sc);
                    break;

                case SchemaCommandType.CreateColumn:
                    this.VisitCreateColumn((CreateColumnCommand)sc);
                    break;

                case SchemaCommandType.DropTable:
                    this.VisitDropTable((DropTableCommand)sc);
                    break;

                case SchemaCommandType.AlterColumn:
                    this.VisitAlterColumn((AlterColumnCommand)sc);
                    break;

                case SchemaCommandType.DropColumn:
                    this.VisitDropColumn((DropColumnCommand)sc);
                    break;

                case SchemaCommandType.CreateDataBase:
                    this.VisitCreateDataBase((CreateDataBaseCommand)sc);
                    break;

                case SchemaCommandType.DropDataBase:
                    this.VisitDropDataBase((DropDataBaseCommand)sc);
                    break;

                default:
                    break;
            }
        }
 public void Execute(SchemaCommand ctc)
 {
     this.Visit(ctc);
 }