我正在报表生成器3.0中开发一个报表,我从表dbo.odcalls中提取数据。 现在的问题是这个表是按月在一个单独的数据库(HN_Backup)上存档的,我需要组合将来生成的所有存档表和表中的数据并给出结果。我有2种方法可以做到:
如果有相同的解决方法,请告诉我。提前谢谢
答案 0 :(得分:1)
让我们创建一些表格:
CREATE TABLE odcalls_2014_10
(
[ID] TINYINT
)
CREATE TABLE odcalls_2014_11
(
[ID] TINYINT
)
CREATE TABLE odcalls_2014_12
(
[ID] TINYINT
)
CREATE TABLE odcalls_2015_01
(
[ID] TINYINT
)
....
然后,您可以构建一个可以放入存储过程的动态SQL语句:
DECLARE @DynamicSQLStatement NVARCHAR(MAX) = STUFF
(
(
SELECT ' UNION ALL SELECT * FROM ' + [TABLE_NAME]
FROM [INFORMATION_SCHEMA].[TABLES]
WHERE [TABLE_TYPE] = 'BASE TABLE'
AND [TABLE_NAME] LIKE 'odcalls_%'
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1
,11
,''
);
EXECUTE sp_executesql @DynamicSQLStatement;
每次执行该程序时,都将包括所有odcalls
表。