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環境下測試通過。