if object_id('tempdb..#tempTableList') is not null drop table #tempTableList if object_id('tempdb..#tempresults') is not null drop table #tempresults DECLARE @totalrows INT DECLARE @currentrow INT DECLARE @currenttable NVARCHAR(255) CREATE TABLE #tempTableList ([id] INT IDENTITY(1,1), [schemaname] NVARCHAR(128), [tablename] NVARCHAR(128), [row_count] BIGINT, [kb_reserved] BIGINT, [kb_data] BIGINT, [kb_index_size] BIGINT, [kb_unused] BIGINT) CREATE TABLE #tempresults ( [tablename] NVARCHAR(128), [row_count] CHAR(11), [kb_reserved] VARCHAR(18), [kb_data] VARCHAR(18), [kb_index_size] VARCHAR(18), [kb_unused] VARCHAR(18)) INSERT INTO #tempTableList ([schemaname], [tablename]) SELECT SCHEMA_NAME(O.SCHEMA_ID) AS TABLE_SCHEMA, OBJECT_NAME(O.OBJECT_ID) AS TABLE_NAME FROM SYS.TABLES O SELECT @totalrows = COUNT(*) FROM #tempTableList SELECT @currentrow = 1 WHILE @currentrow <= @totalrows BEGIN DELETE #tempresults SELECT @currenttable = [schemaname] + '.' + [tablename] FROM #tempTableList WHERE [id] = @currentrow INSERT #tempresults EXEC sp_spaceused @currenttable UPDATE #tempTableList SET [row_count] = CAST(#tempresults.[row_count] AS BIGINT) ,[kb_reserved] = CAST(REPLACE(#tempresults.[kb_reserved],' kb','') AS BIGINT) ,[kb_data] = CAST(REPLACE(#tempresults.[kb_data],' kb','') AS BIGINT) ,[kb_index_size] = CAST(REPLACE(#tempresults.[kb_index_size],' kb','') AS BIGINT) ,[kb_unused] = CAST(REPLACE(#tempresults.[kb_unused],' kb','') AS BIGINT) FROM #tempTableList INNER JOIN #tempresults ON #tempTableList.[tablename] = #tempresults.[tablename] SET @currentrow = @currentrow + 1 END SELECT * FROM #tempTableList ORDER BY [schemaname],[tablename]
Friday, 14 November 2008
Table Sizes Script
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment