Судя по описанию задачи, вы пытаетесь сделать механизмы позволяющие производить изменения на БД программным способом.
Реализовать такое с нуля - трудная задача, полная непредвиденных особенностей. Как минимум часть DDL операций будут сопровождаться изменением самих данных.
Есть набор утилит которые позволяют это делать чуть более правильным способом - database source control системы. Самые известные -
Liquibase и
Flyway.
Не скажу есть ли у них интерфейсы для вызова из C++ но стоит определённо взглянуть в эту сторону.