То, что вы спрашиваете, не имеет большого смысла в терминах SQL
Исходя из ваших примеров:
CREATE TABLE - это именно CREATE TABLE.Почему Макрос это?Вы не собираетесь заменять «СОЗДАНИЕ ПРОЦЕДУРЫ».
Наличие «общих» полей будет указывать на плохой дизайн
Вы также должны учитывать:
- ограничения, ключи и индексы
- разрешения на использование динамического SQL
- стоимость разработки "каркаса" для того, что SQL уже делает
- разрешения ваших объектов
Теперь, какую бизнес-проблему вы пытаетесь решить?
Вместо того, чтобы спрашивать о выбранном вами решении ...
Редактировать: вопрособновлено, как я напечатал выше:
IF (a condition)
EXEC ('CREATE TABLE ...')
ELSE IF (a condition)
EXEC ('CREATE TABLE ...')
...
Обратите внимание, что большая часть DDL в SQL должна быть в своем собственном пакете или в первом операторе в пакете.Следовательно, использование динамического SQL снова