Не совсем - в SQL Server 2005 значительно улучшено управление системами благодаря схеме системного каталога "sys" и представлениям динамического управления, но в SQL Server 2000 вы весьма ограничены.
Вы можете использовать этот скрипт, чтобы проверить и собрать информацию об используемом пространстве и представить ее красиво - но он все еще использует sp_spaceused
хранимый процесс в конце:
--**************************************
-- Name: Get SQL Table Size - Table and Index Space - Row Count
-- Description: This Script will return the row count and the amount of
-- disk space that each table uses within a specifed database.
-- When returning total disk space used, it breaks it up into 3 categories...
-- 1. The amount used by data
-- 2. The Amount used by indexes
-- 3. The amount of unused space
SET NOCOUNT ON
DECLARE @cmdstr varchar(100)
DECLARE @Sort bit
SELECT @Sort = 0 /* Edit this value for sorting options */
--Create Temporary Table
CREATE TABLE #TempTable
([Table_Name] varchar(50),
Row_Count int,
Table_Size varchar(50),
Data_Space_Used varchar(50),
Index_Space_Used varchar(50),
Unused_Space varchar(50) )
--Create Stored Procedure String
SELECT @cmdstr = 'sp_msforeachtable ''sp_spaceused "?"'''
--Populate Tempoary Table
INSERT INTO #TempTable
EXEC(@cmdstr)
--Determine sorting method
IF @Sort = 0 BEGIN
--Retrieve Table Data and Sort Alphabetically
SELECT * FROM #TempTable
ORDER BY Table_Name
END
ELSE BEGIN /*Retrieve Table Data and Sort by the size of the Table*/
SELECT *
FROM #TempTable
ORDER BY Table_Size DESC
END
--Delete Temporay Table
DROP TABLE #TempTable