手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

【SQL Server】实现批量查询数据库表所占空间

时间:2024-10-13 21:10:08

1、首先来讲一下我的思路,在要批量查询的数据库中新建一个表,主要负责收集本数据库中所有表的表名,然后通过一个insert的触发器,每次向表里添加表名,都会触发这个触发器,这个触发器的作用就是每添加一条信息,就直接显示出这个表名所对应的表所占空间大小。

2、我们首先来创建一个数据库辅助表,当然了,这不是关键的部分,这里就省略代码了,会基本数据库操作的朋友应该都了解这个语句啦。

【SQL Server】实现批量查询数据库表所占空间

3、辅助表创建完成以后呢,说一下需求,就是我想要知道这个数据库中所有表所占的空间大小以及其他的信息,那接下来,我们就需要给AddTable这个表创建一个触发器了。

【SQL Server】实现批量查询数据库表所占空间

4、虽然看似简单的几句,可是还是需要解释一下这个触发器的构造,希望能够对新手有帮助,首先,第一行的意思就是我们创建了一个叫mytrigger的触发器,这个触发器是作用在AddTable表上的。

【SQL Server】实现批量查询数据库表所占空间

5、after insert的意思就是触发器触发的时间,就是在执行添加语句之后触发,还不理解的,直接翻译英文即可。after ...之后;insert 新增,添加。

【SQL Server】实现批量查询数据库表所占空间

6、接下来就好理解了,在之前的经验里有涉及到,定义一个varchar类型的sql参数,大小为max,然后初始化sql参数为空字符。

【SQL Server】实现批量查询数据库表所占空间

7、然后我们就利用EXECUTE执行动态语句,其实这里的“exec sp_spaceused[表名]”就是我们常吹涡皋陕用的查询单表所占空间大小的语句,这里表名所在的位置为什么是 TableName呢?或许很多人都有这个疑问,很简单,因为AddTable的列名就是TableName。

【SQL Server】实现批量查询数据库表所占空间

8、到这里,触发器就已经创建好了,就等对AddTable表进行添加操作来触发它了,接下来,我们根据之前的需求,把这个数据库中的表名查询出来,然后都添加到帆歌达缒AddTable表中。首先我们来看一下如何查询数据库中所有的表名。语句就是:select Name from sysobjects where xtype='u'

【SQL Server】实现批量查询数据库表所占空间

9、能查询出来,那接下来,我们就进行添加,语句为:Insert AddTableselect Name from sysobjects where xtype='u'

【SQL Server】实现批量查询数据库表所占空间

10、执行后,我们会发现,在数据库进行逻辑添加的过程中,对应的表的数据也就出来了。

【SQL Server】实现批量查询数据库表所占空间
© 手抄报圈