viernes, 6 de julio de 2007

Conocer el tamaño que ocupa cada tabla


IF EXISTS ( SELECT name FROM sysobjects
WHERE name = 'TamanoPorTablas'
AND type = 'U')Drop Table TamanoPorTablasGO

CREATE TABLE [TamanoPorTablas] ( [Name] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Rows] [varchar] (18) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [reserved] [varchar] (18) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [data] [varchar] (18) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [indexsize] [varchar] (18) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [unused] [varchar] (18) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , CONSTRAINT [PK_TamanoPorTablas] PRIMARY KEY CLUSTERED ( [Name] ) ON [PRIMARY] ) ON [PRIMARY]GO

DECLARE @Tabla Varchar(100), @Query Varchar(100)

Declare CrTabla Cursor for
SELECT Name
FROM Sysobjects
WHERE TYPE = 'U'

Open CrTabla
Fetch Next From CrTabla
Into @Tabla

While (@@Fetch_Status = 0)
begin
Set @Query = 'insert into TamanoPorTablas Exec sp_spaceused '+@Tabla
Exec (@Query)
Fetch Next from CrTabla
into @Tabla
end

Close CrTabla
Deallocate CrTabla

No hay comentarios.: