木子屋 Dnawo's BLOG

使用sp_spaceused显示MSSQL库表明细(行数、使用的磁盘空间等)

👤 dnawo 📅 2011-10-12 👁 6438 👍 0 💬 0 🔄 本站原创
--建临时表
IF OBJECT_ID('tempdb..#used_temp') IS NOT NULL drop table #used_temp
Create TABLE #used_temp(
[name] [nchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[rows] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[reserved] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[data] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[index_size] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[unused] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]

--将库表数据大小导入临时表
declare @tname varchar(200)
DECLARE tablename CURSOR FOR 
Select name FROM sysobjects where type='U'
OPEN tablename  
FETCH NEXT FROM tablename INTO @tname
    WHILE @@FETCH_STATUS = 0
BEGIN
insert into #used_temp exec sp_spaceused @tname
    FETCH NEXT FROM tablename INTO @tname   
END 
CLOSE tablename  
DEALLOCATE tablename

--查询
select * from #used_temp

以上SQL语句在SQL Server2000/2005测试通过。

图片

字段说明:

name:请求其空间使用信息的对象的名称。
rows:表中现有的行数。
reserved:为表保留的空间总量。
data:表中的数据所使用的空间总量。
index_size:表中的索引所使用的空间总量。
unused:为表保留但尚未使用的空间总量。

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 台风名字的由来及命名表 下一篇 → 替代Apache和IIS的轻量级网络服务器