用于查询当前数据库中所有表格的记录条数的脚本(转)

本文提供了一个实用的SQL脚本,用于查询当前数据库中所有表格的记录条数,并将统计数据存入专门创建的TableSpace表中。此外,还介绍了如何通过自定义查询展示不同排序方式下的表格信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用于查询当前数据库中所有表格的记录条数的脚本

 

--==========================================================================
-- 说明: 本脚本用于查询当前数据库中所有表格的记录条数
--   并将结果存入TableInfo表中,不会删除以备用户再做处理与分析
--   不过,最后请用户删除此表。
--==========================================================================

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TableSpace]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[TableSpace]
go

create table TableSpace
(
 TableName  varchar(20),
 RowsCount char(11),
 Reserved varchar(18),
 Data  varchar(18),
 Index_size varchar(18),
 Unused  varchar(18)  
)
go

declare @sql varchar(500)
declare @TableName varchar(20)

declare Cursor1 Cursor
for
 select name from sysobjects where xtype='U'

open Cursor1
fetch next from Cursor1 into @TableName

while @@fetch_status = 0
begin
 set @sql = 'insert into TableSpace '
 set @sql = @sql + ' exec sp_spaceused '''+ @TableName + ''' '
 exec (@sql)
 fetch next from Cursor1 into @TableName
end
close Cursor1
deallocate Cursor1
go


--显示结果
select * from TableSpace
--order by TableName
--order by TableName ASC   --按表名称,用于统计表
--order by RowsCount DESC   --按行数量,用于查看表行数
--order by Reserved DESC, Data DESC  --按占用空间
--order by Index_size DESC, Reserved DESC  --按索引空间查看
go

--查看库的使用状况,可以随时执行的。
--exec sp_spaceused
--go

### 如何列出数据库中的所有视图 在 SQL Server 中,可以通过查询系统视图 `INFORMATION_SCHEMA.VIEWS` 或者系统 `SYS.OBJECTS` 来获取当前数据库中存在的所有视图。 以下是两种常见的实现方式: #### 方法一:使用 `INFORMATION_SCHEMA.VIEWS` 这是标准的方式之一,适用于大多数关系型数据库。它返回当前数据库中所有的用户定义视图名称。 ```sql SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS; ``` 此查询的结果包含了两个重要字段:`TABLE_SCHEMA` 和 `TABLE_NAME`,分别示视图所属的架构以及视图的名字[^2]。 #### 方法二:使用 `SYS.OBJECTS` 另一种更灵活的方法是直接查询系统 `SYS.OBJECTS`,该方法允许进一步筛选特定类型的对象(如仅限于视图)。对于视图而言,其类型标记为 `'V'`。 ```sql SELECT NAME AS ViewName, TYPE_DESC FROM SYS.OBJECTS WHERE TYPE = 'V'; ``` 上述语句不仅列出了视图名字,还提供了描述信息 (`TYPE_DESC`),帮助理解每个条目具体代什么类型的对象[^1]。 这两种方法各有优劣,在实际应用过程中可以根据需求选择合适的一种来执行操作。 ```sql -- 示例代码展示如何结合两者特点构建复杂查询 WITH AllViews AS ( SELECT SCHEMA_NAME(schema_id) AS SchemaName, name AS ViewName FROM sys.objects WHERE type = 'V' ) SELECT av.SchemaName, av.ViewName FROM AllViews av ORDER BY av.SchemaName, av.ViewName; ``` 以上脚本先创建了一个公共达式 (CTE)用于收集来自 `sys.objects` 的数据;接着基于这个 CTE 进行最终的选择并按指定顺序排列结果集[^3]。 值得注意的是,虽然视图本身并不保存任何物理记录而是依据基础表格动态生成内容[^4],但是了解它们的存在及其结构仍然非常重要,因为这有助于维护和优化整个数据库设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值