У меня есть таблицы с именами:
Posts_August_2011
Posts_September_2011
Posts_October_2011
Posts_November_2011
Posts_December_2011
Posts_January_2012
Я хочу создать хранимую процедуру, которая будет UNION
таблиц, но это не проблема, поскольку я могу использовать динамический SQL, чтобы склеить ее, моя проблема состоит в том, чтобы получить диапазон месяцев и годов от RANGE до какого-то списка? а затем проверяем, существует ли таблица, объединяем их и возвращаем.
Я бы объявил 2 переменные @FromDate
и @Todate as datetime
Как лучше всего извлечь название месяца и год для каждого из месяцев в указанном диапазоне.
Скажите, я задаю диапазон @FromDate = '2011-10-18 14:16:27.000' and
@ToDate = '2012-01-09 14:16:27.000'
Может кто-нибудь посоветовать, как извлечь Месяц и год.
DECLARE @SqlToExecute as nvarchar(MAX);
использование динамического SQL допустимо, оно может проверить наличие таблицы в цикле while и
клей для строки для каждой таблицы, которая существует в диапазоне как:
@SqlToExecute += 'SELECT * FROM Posts_' + extractedMonthName + '_' + extractedYear + ' UNION ALL ';