【发布时间】:2012-01-14 10:28:22
【问题描述】:
我有名为:
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);
使用 dinamyc SQL 是可以接受的,它可以在 while 循环中检查表的存在和 为范围内存在的每个表粘合到字符串:
@SqlToExecute += 'SELECT * FROM Posts_' + extractedMonthName + '_' + extractedYear + ' UNION ALL ';
【问题讨论】:
标签: sql sql-server sql-server-2008