Usage of non standardized queries
When you add a column to a table, most, if not all, queries referencing the table will need changing.  That is the cost of adding a column.

Using ? is good.  It (or the equivalent) is available in most client languages.  But... It only lets you change numbers and strings, not table names.  Numbers and strings are the flexibility you need.  A parameterized table name implies that the schema is poorly designed -- It is usually bad to have multiple tables with the same sets of columns.