要找到数据库中数据表占用的空间和存在的行数。可以使用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'
分享到:
相关推荐
易语言~模块~批量~下载 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...
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 ...
Sqlite表管理 SQL基本语句 SQL数据库操作模块 SQL数据库最新操作模块 色彩转换_模块 杀进程模块 删除文件模块 设置IE代理服务器1.0 设置表格模块 设置控件锚点 设置鼠标活动范围 生成Sqlite表结构 十进制转化...
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...
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...
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个易语言模块,易语言模块大集合,够你用的啦 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建....
1350多个精品易语言模块提供下载介绍 1亦思验证码识别1.5免费版.ec 24位转单色位图模块.ec 32张发牌.ec 3D引擎支持库-eOgre.ec 69msn.ec ACCESS 到高级表格.ec Access操作.ec Access数据库压缩修复新建.ec ACCSEE...
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个模块!!! ACCESS到高级表格1.1(1.1).zip Access操作(1.0).zip ACCESS到超级列表框(1.0).zip ...
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 传世私服注册...