Что ж, лучшее решение состоит в том, чтобы реорганизовать вашу базу данных в одну таблицу вместо таблиц в месяц (возможно, используя представления для имитации старой структуры месячных таблиц), но если это не вариант ...
Один из вариантов без динамического SQL - выбрать все таблицы в UNION и отфильтровать их по текущей дате
SELECT *
FROM Jan_Data
WHERE MONTH(GETDATE()) = 1
UNION ALL
SELECT *
FROM Feb_Data
WHERE MONTH(GETDATE()) = 2
...
(я не даю никаких обещаний по поводу производительности; это просто для простоты обслуживания, но оптимизатор может позаботиться о любых проблемах с производительностью)
Как примечание, что происходит в конце года? Jan_Data заменяется? Наличие отдельных таблиц только по месяцам (не по годам) может показаться весьма ограничивающим.