Advertisement
piotrek77

Rozmiar tabel

Jun 29th, 2013
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 1.31 KB | None | 0 0
  1.  
  2.  
  3.  
  4. declare @tab table
  5. (_name varchar(50),
  6. _rows int,
  7. _reserved varchar(50),
  8. _data varchar(50),
  9. _index_size varchar(50),
  10. _unused varchar(50),
  11. _reservedInt int,
  12. _dataInt int,
  13. _index_sizeInt int,
  14. _unusedInt int
  15. )
  16.  
  17.  
  18. declare @nazwa varchar(50)
  19.  
  20. declare kursor cursor forward_only FOR
  21. select name from sys.objects
  22.  
  23. where type_desc= 'USER_TABLE'
  24. and schema_id = 5
  25. open kursor
  26. FETCH NEXT FROM kursor INTO @nazwa
  27.  
  28.     while @@FETCH_STATUS = 0
  29.     begin
  30.     SET @nazwa = 'CDN.'+@nazwa
  31.     insert into @tab (_name,
  32. _rows,
  33. _reserved,
  34. _data,
  35. _index_size,
  36. _unused)
  37.     exec sp_spaceused @nazwa
  38.  
  39.     print @nazwa
  40.  
  41.     FETCH NEXT FROM kursor INTO @nazwa
  42.     End
  43. close kursor
  44. DEALLOCATE kursor
  45.  
  46. UPDATE @tab SET _reservedInt = Convert(int, CASE Right(_reserved,2) WHEN 'KB' THEN Left(_reserved,Len(_reserved)-3) ELSE 0 END ),
  47. _dataInt = Convert(int, CASE Right(_data,2) WHEN 'KB' THEN Left(_data,Len(_data)-3) ELSE 0 END ),
  48. _index_sizeInt = Convert(int, CASE Right(_index_size,2) WHEN 'KB' THEN Left(_index_size,Len(_index_size)-3) ELSE 0 END ),
  49. _unusedInt = Convert(int, CASE Right(_unused,2) WHEN 'KB' THEN Left(_unused,Len(_unused)-3) ELSE 0 END )
  50.  
  51. select * from @tab
  52. select _name, _reservedInt + _dataInt + _index_sizeInt + _unusedInt as Rozmiar from @tab
  53. ORDER BY _reservedInt + _dataInt + _index_sizeInt + _unusedInt DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement