y no has pensado mejor cambiar la estructura de tus tablas? en lugar de tener los mismos campos en N tablas porque no agregas un campo fecha?? digo si eso no es posible para realizar lo que necesitas tendrias que hacer un query dinamico que busque en las vistas de sistema todas las tablas que tengan por ejemplo el nombre tabla20NN, te dejo un pequeño ejemplo de como obtener los registros de todas las tablas de una base de datos(ya con eso puedes jugar un poco para obtener lo que quieres)
Código SQL:
Ver originalDROP TABLE #temp
DROP TABLE #t
SELECT TABLE_NAME, IDENTITY(INT,1,1) AS ROW
INTO #temp
FROM information_schema.TABLES
WHERE (table_type = 'base table')
CREATE TABLE #t
(
[name] NVARCHAR(128),
[ROWS] CHAR(11),
reserved VARCHAR(18),
DATA VARCHAR(18),
index_size VARCHAR(18),
unused VARCHAR(18)
)
DECLARE
@contador INT,
@query VARCHAR(MAX),
@x INT,
@nombre VARCHAR(200)
SELECT @contador=COUNT(*) FROM #temp
SET @x=1
SET @query=''
while @x<=@contador
BEGIN
SELECT @nombre=TABLE_NAME FROM #temp WHERE ROW=@x
SET @query='insert into #t exec sp_spaceused ' + CHAR(39) + @nombre + CHAR(39)
EXEC Sp_sqlExec @query
SET @x=@x+1
END
SELECT * FROM #t
Este query te obtiene las estadisticas de todas las tablas de tu base de datos(espacio usando en disco, renglones etc)