sqlserver查询数据的所有表名和行数

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 原文:sqlserver查询数据的所有表名和行数 //查询所有表明select name from sysobjects where xtype='u' select * from sys.

原文:sqlserver查询数据的所有表名和行数

//查询所有表明
select
name from sysobjects where xtype='u' select * from sys.tables


//查询数据库中所有的表名及行数
SELECT  a.name AS [TABLE NAME] ,
        b.rows AS [RECORD COUNT]
FROM    sysobjects AS a
        INNER JOIN sysindexes AS b ON a.id = b.id
WHERE   ( a.type = 'u' )
        AND ( b.indid IN ( 0, 1 ) )
ORDER BY a.name ,
        b.rows DESC

 


//查询所有的标明及空间占用量\行数 select object_name(id) tablename, 8*reserved/1024 reserved, rtrim(8*dpages)+'kb' used, 8*(reserved-dpages)/1024 unused, 8*dpages/1024-rows/1024*minlen/1024 free, rows --,* from sysindexes where indid=1 order by tablename,reserved desc

 

SELECT  T.TABLE_NAME AS [TABLE NAME] ,
        MAX(I.ROWS) AS [RECORD COUNT]
FROM    SYSINDEXES I ,
        INFORMATION_SCHEMA.TABLES T
WHERE   T.TABLE_NAME = OBJECT_NAME(I.ID)
        AND T.TABLE_TYPE = 'BASE TABLE'
GROUP BY T.TABLE_SCHEMA ,
        T.TABLE_NAME; 
---------------------------------------------------------------

SELECT  OBJECT_NAME(id) AS [TABLE NAME] ,
        rowcnt AS [RECORD COUNT]
FROM    sysindexes
WHERE   indid < 2
        AND OBJECTPROPERTY(id, 'ismsshipped') = 0
ORDER BY OBJECT_NAME(id)  
 

 

--创建临时表 
CREATE   TABLE ##RowCount
    (
      [TABLE NAME] VARCHAR(500) ,
      [RECORD COUNT] INT
    )  
--执行存储过程   
EXEC sp_msforeachtable 'insert   into   ##RowCount   ([TABLE NAME],[RECORD COUNT])   select   ''?''   tableName,   count(*)   dataCount from   ?'   
  
--查询结果
SELECT  *
FROM    ##RowCount
ORDER BY [TABLE NAME]  
  
DROP TABLE ##RowCount 

 

--统计一个数据库中所有表记录的数量
-- 最近公司的数据库发现有表的数据被弄掉了,有些数据表记录为0,于是想找出此数据库中到底有哪些数据表的记录都为0以缩小分析范围,可使用如下的SQL Statement: 
 
CREATE   TABLE #tmptb
    (
      tbname sysname ,
      tbrows INT ,
      tbREserved VARCHAR(10) ,
      tbData VARCHAR(10) ,
      tbIndexSize VARCHAR(10) ,
      tbUnUsed VARCHAR(10)
    ) 

INSERT  INTO #tmptb
        EXEC sp_MSForEachTable 'EXEC   sp_spaceused   ''?''' 

SELECT  *
FROM    #tmptb
 --列出所有表的情况 

SELECT  tbrows ,
        tbname
FROM    #tmptb
WHERE   tbrows = 0 --列出记录数据为0的表
ORDER BY tbname

DROP TABLE #tmptb
 
--其中
--tbname     表名 
--tbrows     记录数 
--tbREserved     保留空间 
--tbData     使用空间 
--tbIndexSize     索引使用空间 
--tbUnUsed   未用空间

 

  --SQLServer遍历数据库所有表及统计表数据总数:
  DECLARE @TableName VARCHAR(255);
  CREATE TABLE #GetRecordingTempTable
    (
      [id] [INT] IDENTITY(1, 1)
                 NOT NULL ,
      [TableName] VARCHAR(255) NOT NULL ,
      [RecordingCount] INT
    );
  DECLARE Table_Cursor CURSOR
  FOR
    SELECT  [name]
    FROM    sysobjects
    WHERE   xtype = 'U';
  OPEN Table_Cursor;
  FETCH NEXT FROM Table_Cursor INTO @TableName;
  WHILE ( @@FETCH_STATUS = 0 )
    BEGIN
        EXEC('INSERT INTO #GetRecordingTempTable ([TableName],[RecordingCount]) SELECT '''+@TableName+''', COUNT(0) FROM ['+@TableName+'];');
        FETCH NEXT FROM Table_Cursor INTO @TableName;
    END
  CLOSE Table_Cursor;
  DEALLOCATE Table_Cursor;
  SELECT    [TableName] AS [表名称] ,
            [RecordingCount] AS [总记录数]
  FROM      #GetRecordingTempTable
  ORDER BY  [TableName];
  DROP TABLE #GetRecordingTempTable;
  GO

 

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
1月前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
2月前
|
SQL 存储 数据挖掘
SQL Server 日期格式查询详解
SQL Server 日期格式查询详解
186 2
|
4月前
|
Java 测试技术 容器
从零到英雄:Struts 2 最佳实践——你的Web应用开发超级变身指南!
【8月更文挑战第31天】《Struts 2 最佳实践:从设计到部署的全流程指南》深入介绍如何利用 Struts 2 框架从项目设计到部署的全流程。从初始化配置到采用 MVC 设计模式,再到性能优化与测试,本书详细讲解了如何构建高效、稳定的 Web 应用。通过最佳实践和代码示例,帮助读者掌握 Struts 2 的核心功能,并确保应用的安全性和可维护性。无论是在项目初期还是后期运维,本书都是不可或缺的参考指南。
54 0
|
4月前
|
SQL 存储 安全
Play Framework的安全面纱:揭开隐藏在优雅代码下的威胁
【8月更文挑战第31天】Play Framework 是一款高效、轻量级的 Web 开发框架,内置多种安全特性,助力开发者构建安全稳定的应用。本文详细介绍 Play 如何防范 SQL 注入、XSS 攻击、CSRF 攻击,并提供安全的密码存储方法及权限管理策略,通过具体示例代码展示实施步骤,助您有效抵御常见威胁。
71 0
|
4月前
|
SQL 存储 开发框架
Entity Framework Core 与 SQL Server 携手,高级查询技巧大揭秘!让你的数据操作更高效!
【8月更文挑战第31天】Entity Framework Core (EF Core) 是一个强大的对象关系映射(ORM)框架,尤其与 SQL Server 数据库结合使用时,提供了多种高级查询技巧,显著提升数据操作效率。它支持 LINQ 查询,使代码简洁易读;延迟加载与预先加载机制优化了相关实体的加载策略;通过 `FromSqlRaw` 或 `FromSqlInterpolated` 方法支持原始 SQL 查询;可调用存储过程执行复杂任务;利用 `Skip` 和 `Take` 实现分页查询,便于处理大量数据。这些特性共同提升了开发者的生产力和应用程序的性能。
216 0
|
4月前
|
SQL 存储 数据管理
掌握SQL Server Integration Services (SSIS)精髓:从零开始构建自动化数据提取、转换与加载(ETL)流程,实现高效数据迁移与集成——轻松上手SSIS打造企业级数据管理利器
【8月更文挑战第31天】SQL Server Integration Services (SSIS) 是 Microsoft 提供的企业级数据集成平台,用于高效完成数据提取、转换和加载(ETL)任务。本文通过简单示例介绍 SSIS 的基本使用方法,包括创建数据包、配置数据源与目标以及自动化执行流程。首先确保安装了 SQL Server Data Tools (SSDT),然后在 Visual Studio 中创建新的 SSIS 项目,通过添加控制流和数据流组件,实现从 CSV 文件到 SQL Server 数据库的数据迁移。
287 0
|
4月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
473 0
|
4月前
|
SQL 存储 测试技术
SQL Server 查询超时问题排查
【8月更文挑战第14天】遇到SQL Server查询超时,先检查查询复杂度与索引使用;审视服务器CPU、内存及磁盘I/O负载;审查SQL Server配置与超时设置;检测锁和阻塞状况;最后审查应用代码与网络环境。每步定位问题根源,针对性优化以提升查询效率。务必先行备份并在测试环境验证改动。
349 0
|
3月前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
105 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例