`
sjk2013
  • 浏览: 2187766 次
文章分类
社区版块
存档分类
最新评论

使用一个T-SQL语句批量查询数据表占用空间及其行数

 
阅读更多

要找到数据库中数据表占用的空间和存在的行数。可以使用sp_spaceused搭配数据表的名称。就可以产生该表耗用的空间和现有行数。

如:

USE ADVENTUREWORKS

GO

EXEC sp_spaceused [Sales.SalesOrderHeader]

GO

但如果数据库中包含数千的数据表,如何能利用一句SQL语句来实现?

解决方法:

一、动态SQL:

先用T-SQL动态产生表达式,然后放到一个查询中执行。如:

USE ADVENTUREWORKS

GO

SET NOCOUNT ON

SELECT 'EXEC SP_SPACEUSED ['+S.name+'.'+T. name +'];'

FROM sys.tables T INNER JOIN sys.schemas S

ON T.SCHEMA_ID=S.SCHEMA_ID

WHERE S.NAME='HumanResources'

SET NOCOUNT OFF

结果如下:


把结果复制到新的窗口执行即可得到结果。

但这种方法需要人手操作不适合自动化、定时化操作。

二、使用累加字符串的方式动态生成:

因为要自动化,所以会利用数据表的INSERT触发器,执行动态表达式。并且自动将输入的数据表,计算结果:

--建立表,执行insert触发器

USE AdventureWorks

GO

CREATE TABLE myTab

(

TableName VARCHAR(255)

)

GO

--建立触发器:

CREATE TRIGGER tr2 ON myTab

AFTER INSERT

AS

DECLARE @sql VARCHAR(max)

SET @sql=''

--使用累加字符串,产生语句

SELECT @sql=@sql+

'EXEC sp_spaceused ['+TableName+']; '

FROMinserted

--利用EXECUTE 执行动态语句

EXEC (@sql)

--新增指定的数据表名称,会自动显示数据表的使用空间:

INSERT myTab

SELECT S.name+'.'+T.name

FROM sys.tables T INNER JOIN sys.schemas S

ON T.schema_id=S.schema_id

WHERE S.name='HumanResources'

分享到:
评论

相关推荐

    1000个【易语言模块大全汇总批量下载】

    易语言~模块~批量~下载 2008-11-08 14:41 文件夹 文件夹 易语言模块大全 2005-10-21 15:30 14489 3100 易语言模块大全\24位转单色位图模块.ec 2007-01-18 07:00 7110 2339 易语言模块大全\69msn.ec 2005-05-26 02:18...

    易语言模块大全汇总批量下载

    易语言~模块~批量~下载 2008-11-08 14:41 文件夹 文件夹 易语言模块大全 2005-10-21 15:30 14489 3100 易语言模块大全\24位转单色位图模块.ec 2007-01-18 07:00 7110 2339 易语言模块大全\69msn.ec 2005-05-26 02:18...

    E语言1000模块

    2006-03-29 04:40 4961 1740 易语言模块大全\SQL基本语句.ec 2006-01-04 14:21 77791 19069 易语言模块大全\sql操作模块.ec 2005-10-21 15:30 8193 2748 易语言模块大全\SQL数据库操作模块.ec 2002-04-11 09:36 ...

    易语言540个易模块

    Sqlite表管理 SQL基本语句 SQL数据库操作模块 SQL数据库最新操作模块 色彩转换_模块 杀进程模块 删除文件模块 设置IE代理服务器1.0 设置表格模块 设置控件锚点 设置鼠标活动范围 生成Sqlite表结构 十进制转化...

    790个易模块-3

    SQL基本语句.ec SQL数据库操作模块.ec SQL数据库最新操作模块.ec TCP服务器.ec TWnet.CN.EC user32模块.EC user模块.EC USUAL.EC windowsXP界面模拟模块1.0.ec windowsXP界面模拟模块1.01.ec windowsXP...

    790个易模块打包下载-2

    SQL基本语句.ec SQL数据库操作模块.ec SQL数据库最新操作模块.ec TCP服务器.ec TWnet.CN.EC user32模块.EC user模块.EC USUAL.EC windowsXP界面模拟模块1.0.ec windowsXP界面模拟模块1.01.ec windowsXP...

    易语言模块914个

    SQL基本语句.ec sql操作模块.ec SQL数据库操作模块.ec SQL数据库最新操作模块.ec Star.ec StarlightExtinction.ec status.ec status2.ec Super-EC.ec SysResInfo.ec taskbar.ec TCP服务器.ec tcsxk.ec ...

    1345个易语言模块

    1345个易语言模块,易语言模块大集合,够你用的啦 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建....

    1350多个精品易语言模块

    1350多个精品易语言模块提供下载介绍 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建.ec ACCSEE...

    790个易模块打包

    SQL基本语句.ec SQL数据库操作模块.ec SQL数据库最新操作模块.ec TCP服务器.ec TWnet.CN.EC user32模块.EC user模块.EC USUAL.EC windowsXP界面模拟模块1.0.ec windowsXP界面模拟模块1.01.ec windowsXP...

    易语言模块大全(共775个模块)

    易语言模块大全,里面包含775个模块!!! 易语言模块大全,里面包含775个模块!!! 易语言模块大全,里面包含775个模块!!! ACCESS到高级表格1.1(1.1).zip Access操作(1.0).zip ACCESS到超级列表框(1.0).zip ...

    易语言700模块打包

    CPU占用率检测模块(1.0).zip ceshi (1.0).zip 磁盘相关(1.0).zip 创建快捷方式模块2.2(1.0).zip 创建任意目录 1.0.0.2(1.0).zip 常用模块(1.0).zip 窗口整容师(1.1).zip 窗口整容师(1.0).zip 传世私服注册...

Global site tag (gtag.js) - Google Analytics