以下代码返回11个表中的数据。每个表都包含年份和月份。我需要使用enddate参数来检查是否只提取了表todate。因此,如果用户想要201505的数据,它应该 假设我们在201510个月,从2015年10月开始,所有表格仅截至201509年。表格如下:
<select>
答案 0 :(得分:0)
您可以从INFORMATION_SCHEMA.TABLES获取所有表名。因此,只需应用您的标准即可获得它们:
select table_name
from information_schema.tables
where table_type = 'BASE TABLE'
and table_name like 'xx\_______\_T' escape '\'
and table_name >= 'xx_' + CAST(@FirstTableMonth as varchar) + '_T';
答案 1 :(得分:0)
我已经发布了一个解释如何检索表名的答案。
但改变设计真的会更好。使它成为一个表并创建几个月的视图(命名为表现在命名)。使用替代插入触发器提供视图,因此您可以像以前一样使用select,update,insert和delete,但是您还可以使用适当的表:
select * from xx_all_t where month >= @FirstTableMonth;