您的位置:首页 > 数据库

查看MS SQL Server 2005數據庫中各表大小的SQL Script

2012-05-21 18:29 447 查看
--查看MS SQL Server 2005數據庫中各表大小的SQL Script
DECLARE @tablespaceinfo TABLE (   
    nameinfo varchar(50),   
    rowsinfo int,   
    reserved varchar(20),   
    datainfo varchar(20),   
    index_size varchar(20),   
    unused varchar(20)   
)   
  
DECLARE @tablename varchar(255); 
 
DECLARE Info_cursor CURSOR FOR  
    SELECT [name] FROM sys.tables WHERE type='U';   

OPEN Info_cursor   
FETCH NEXT FROM Info_cursor INTO @tablename   
  
WHILE @@FETCH_STATUS = 0   
BEGIN  
    insert into @tablespaceinfo exec sp_spaceused @tablename   
    FETCH NEXT FROM Info_cursor INTO @tablename   
END  
  
CLOSE Info_cursor   
DEALLOCATE Info_cursor   
  
SELECT * FROM @tablespaceinfo   
    ORDER BY Cast(Replace(reserved,'KB','') as INT) DESC




上述SQL script使用的是表變量,鏈接結束即自行銷毀。



--查看MS SQL Server 2005數據庫大小的SQL Script
IF OBJECT_ID('DatabaseFiles') IS NULL 
BEGIN
SELECT TOP 0 * INTO DatabaseFiles --使用Top 0生成一個表架子
FROM sys.database_files
ALTER TABLE DatabaseFiles
ADD CreationDate DATETIME DEFAULT(GETDATE())
END
EXECUTE sp_msforeachdb 'INSERT INTO DatabaseFiles SELECT *, GETDATE() FROM [?].sys.database_files'
SELECT * FROM DatabaseFiles order by name




上述SQL Script會產生真實的表(不過該表比較小),所以如無必要,可以事後手動刪除該表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: