SQL Server 2008系統資訊查詢常用命令 檢視錶大小、記錄數等

何隨風發表於2013-08-29
1、返回所有資料庫資訊(資料庫名,建立日期,儲存路徑等)。
 
1 use master;
2 GO
3 select * from dbo.sysdatabases

 

2、返回當前資料庫所有物件(可根據type欄位過濾出使用者表,索引等)。
1 USE AdventureWorks2008R2;
2 GO
3 SELECT * FROM SYS.objects WHERE TYPE='U'

3、查詢指定庫中所有表資訊(記錄數,使用空間等)。

複製程式碼
 1 USE AdventureWorks2008R2;
 2 GO
 3 exec sp_MSForEachTable 
 4 @precommand=N'create table ##(
 5 表名 sysname,
 6 記錄數 int,
 7 保留空間 Nvarchar(10),
 8 使用空間 varchar(10),
 9 索引使用空間 varchar(10),
10 未用空間 varchar(10))',
11 @command1=N'insert ## exec sp_spaceused ''?''',
12 @postcommand=N'select * from ## order by 記錄數 '
13 
14 DROP TABLE ##
複製程式碼

結果如下:

表名        記錄數      保留空間   使用空間   索引使用空間  未用空間      
----------  ----------- ---------- ---------- ------------ ----------
discounts   3           16 KB      8 KB       8 KB         0 KB
stores     
6           24 KB      8 KB       16 KB        0 KB

 

4、返回指定庫所有表的記錄數(使用系統函式sp_MSforeachtable(Table))。

複製程式碼
1 USE AdventureWorks2008R2;
2 go
3 CREATE TABLE #temp (TableName VARCHAR (255), RowCnt INT)
4 EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(*) FROM ?'
5 SELECT TableName, RowCnt FROM #temp ORDER BY RowCnt
6 
7 DROP TABLE #temp;
複製程式碼

 

 全部在SQL Server 2008 R2環境下測試通過。

相關文章