--查询数据库或表的空间分配情况
use IOneDatabase exec sp_spaceused --查询数据库中的空间分配情况 exec sp_spaceused N'app_image' --查看表的空间占用情况 --------------------------------------------------------------------------- if exists (select * from sysobjects where id = object_id(N'[dbo].[s_SpaceUsed]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[s_SpaceUsed] GO Create procedure s_SpaceUsed @SourceDB varchar(128) as /* exec s_SpaceUsed 'mydb' */ set nocount on declare @sql varchar(128) create table #tables(name varchar(128)) select @sql = 'insert #tables select TABLE_NAME from ' + @SourceDB + '.INFORMATION_SCHEMA.TABLES where TABLE_TYPE = ''BASE TABLE''' exec (@sql) create table #SpaceUsed (name varchar(128), rows varchar(11), reserved varchar(18), data varchar(18), index_size varchar(18), unused varchar(18)) declare @name varchar(128) select @name = '' while exists (select * from #tables where name > @name) begin select @name = min(name) from #tables where name > @name select @sql = 'exec ' + @SourceDB + '..sp_executesql N''insert #SpaceUsed exec sp_spaceused ' + @name + '''' exec (@sql) end select * from #SpaceUsed drop table #tables drop table #SpaceUsed go ------------------------------------ exec s_SpaceUsed 'IOneDatabase'
Reference:http://msdn.microsoft.com/en-us/library/ms188776.aspx
http://www.nigelrivett.net/SQLAdmin/SpaceUsedAllTables.html
本文来自: 查看数据库或表的空间占用情况
本页面链接地址(或者引用地址 Trackback)




发表评论