DECLARE @D DATETIME SET @D=GETDATE() SET NOCOUNT ON EXEC SP_MSFOREACHTABLE @PRECOMMAND=N' CREATE TABLE ##( ID INT IDENTITY, 表名 SYSNAME, 字段数 INT, 记录数 INT, 保留空间 NVARCHAR(20), 使用空间 VARCHAR(20), 索引使用空间 VARCHAR(20), 未用空间 VARCHAR(20))', @COMMAND1=N'INSERT ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) EXEC SP_SPACEUSED ''?'' UPDATE ## SET 字段数=(SELECT COUNT(*) FROM SYSCOLUMNS WHERE ID=OBJECT_ID(''?'')) WHERE ID=SCOPE_IDENTITY()', @POSTCOMMAND=N'SELECT * FROM ## ORDER BY 记录数 DESC DROP TABLE ##' SET NOCOUNT OFF SELECT [语句运行花费时间(毫秒)]=DATEDIFF(MS,@D,GETDATE())