Sql server 2000 SQL 2000中使用的sp_空间替代方案

Sql server 2000 SQL 2000中使用的sp_空间替代方案,sql-server-2000,Sql Server 2000,就像我们有sp_helpdb sp=sysdatabases表的备选方案一样 对于SQL server 2000中使用的sp,我们是否有替代表 问候 Manjot并非如此-SQL Server 2005通过“sys”系统目录模式和动态管理视图在系统管理方面引入了巨大的改进-但在SQL Server 2000中,您的能力非常有限 您可以使用此脚本检查和收集空间使用信息,并将其很好地呈现出来,但它最终仍然使用sp\u spaceused存储过程: --************************

就像我们有sp_helpdb sp=sysdatabases表的备选方案一样

对于SQL server 2000中使用的sp,我们是否有替代表

问候


Manjot

并非如此-SQL Server 2005通过“sys”系统目录模式和动态管理视图在系统管理方面引入了巨大的改进-但在SQL Server 2000中,您的能力非常有限

您可以使用此脚本检查和收集空间使用信息,并将其很好地呈现出来,但它最终仍然使用
sp\u 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

您可以随时执行
sp_helptext sp_spaceused
并亲自查看它的功能以及从何处获取数据。您还可以运行并显示执行计划,以获得几乎相同的结果

据我记忆所及,在SQL 2000中,使用的空间是从中的信息中检索的。

您可以使用:

DBCC PDW_SHOWSPACEUSED ("TableName");
获取表的保留空间、数据空间、索引空间、未使用空间、PDW_节点_ID和分发ID


注意:由于某些内部设置,结果中的行数始终为60。

我想查看的是:加入以下结果:exec sp_spaceused'table name';在同一行中选择@@servername,但不使用临时表。我正在获取所有服务器中所有数据库的表信息,然后将其存储在公共位置。对于每个数据库,我想获取每个表使用的servername、databasename、sp_space。这个SSIS包不喜欢临时表,所以我一直在寻找替代方案。我试过做sp_msforeachdb'sp_msforeachtable…'有什么帮助吗?为什么这是错误的?exec sp_MSforeachdb'use[@];执行sp#MSForEachTable“插入到#TableSizeAudit EXEC sp#u spaceused”中?”;“,@”表格大小排序有点不正确。”80KB后接700KB,700KB后接70KB,以此类推。