Это не полное решение, но, надеюсь, что-то, с чего можно начать.
Вы можете проверить следующее регулярное выражение:
/^CREATE\s+TABLE\s+(\S*)\s*\((.*)\)$/
Это грубо, но должно совпадать.
Затем вы можете вытащить первую совпавшую группу (при условии, что вам нужно имя таблицы), а затем вторую совпавшую группу для списка полей
Затем вы можете разделить список полей на запятую, чтобы получить информацию для каждого поля. Помимо этого, вы можете получить имя поля, сопоставив первую группу в /^(.)\s(.)$/ ... Вам нужно будет немного более креативно разбирать вторую половина утверждения (типы, длины, ноль / не ноль, по умолчанию, идентичность (1,1)), но если вы можете определить какой-то шаблон, который всегда будет применяться, я уверен, что это можно сделать. Обратите внимание, что в приведенном выше тексте также предполагается, что пробел правильно обрезан, но это достаточно просто.