Advertisement
RBA

Get tables size from SQL Server database

RBA
Aug 18th, 2011
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.20 KB | None | 0 0
  1. use SqlMonitor
  2. go
  3.  
  4. DECLARE @FName AS NVARCHAR(500)
  5. DECLARE @FNameFull AS NVARCHAR(500)
  6. DECLARE @Schema AS NVARCHAR(500)
  7. DECLARE @SchemaName AS NVARCHAR(500)
  8.  
  9. CREATE TABLE #temp
  10.     (
  11.       [name] NVARCHAR(3000) ,
  12.       [rows] INT ,
  13.       reserved NVARCHAR(3000) ,
  14.       [data] NVARCHAR(3000) ,
  15.       [index_size] NVARCHAR(3000) ,
  16.       unused NVARCHAR(3000)
  17.     )
  18.  
  19.  
  20. DECLARE cur CURSOR FAST_FORWARD
  21. FOR
  22.     SELECT  name ,
  23.             schema_id
  24.     FROM    sys.objects
  25.     WHERE   is_ms_shipped = 0
  26.             AND type = 'U'
  27.  
  28.                
  29. OPEN cur
  30.                
  31. FETCH NEXT FROM cur INTO @FName, @Schema
  32.                
  33. WHILE @@FETCH_STATUS = 0
  34.     BEGIN
  35.  
  36.                
  37.         SELECT  @SchemaName = NAME
  38.         FROM    sys.schemas
  39.         WHERE   schema_id = @Schema
  40.  
  41.         IF ( @SchemaName = 'data' )
  42.             BEGIN
  43.  
  44.                 SET @FNameFull = @SchemaName + '.' + @FName
  45.                 INSERT  INTO #temp
  46.                         EXEC sp_spaceused @FNameFull
  47.             END
  48.         FETCH NEXT FROM cur INTO @FName, @Schema
  49.                
  50.     END
  51.                
  52. CLOSE cur
  53. DEALLOCATE cur
  54. SELECT  *
  55. FROM    #temp
  56. ORDER BY rows DESC
  57. DROP TABLE #temp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement