Script para generar un reporte del espacio usados por cada tabla, lo importante de este script es que no se hace uso de un cursor y nos puede servir como base para generar cualquier otro tipo de reportes.
SET NOCOUNT ON
DECLARE @lngTabCount INTEGER
DECLARE @lngLoopCount INTEGER
DECLARE @strTabName VARCHAR(30)
CREATE TABLE #report
(name varchar(50),
rows int,
reserved varchar(50),
data varchar(50),
index_size varchar(50),
unused varchar (50))
CREATE TABLE #tTables
(
numID INTEGER IDENTITY(1,1)
,strTableName VARCHAR(30)
)
INSERT INTO #tTables (strTableName)
SELECT name FROM dbo.sysobjects WHERE xtype = 'u'
SET @lngTabCount = @@ROWCOUNT
SET @lngLoopCount = @lngTabCount
WHILE @lngLoopCount <> 0
BEGIN
SET @strTabName = (SELECT strTableName FROM #tTables WHERE numID = @lngLoopCount)
INSERT INTO #report
EXEC sp_spaceused @strTabName
SET @lngLoopCount = @lngLoopCount - 1
END
SELECT * FROM #report
DROP TABLE #tTables
DROP TABLE #report
GO