`
sherrysky
  • 浏览: 88937 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

sql server 查询所有表的记录数

阅读更多
--方法1,利用系统函数sp_MSforeachtable,任何表名都支持
CREATE TABLE #temp (TableName VARCHAR (255), RowCnt INT)
EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(*) FROM ?'
SELECT TableName, RowCnt FROM #temp ORDER BY TableName
DROP TABLE #temp
--方法2,自己写函数,有问题,因为数据库用户表名USER,可能和系统表冲突,修改后可以正常运行,结果正确
declare @sql varchar(8000),@count int,@step int
set nocount on
--@step越大运行速度越快,但如果太大会造成生成的sql字符串超出限制导致语句不完整出错,建议为50
set @step = 50

if object_id(N'tempdb.db.#temp') is not null
drop table #temp
create table #temp (name sysname,count numeric(18))

if object_id(N'tempdb.db.#temp1') is not null
drop table #temp1
create table #temp1 (id int identity(1,1),name sysname)
insert into #temp1(name)
select name from sysobjects where xtype = 'u';
set @count = @@rowcount while @count>0
begin
set @sql = ''
select @sql = @sql + ' select ''' + name + ''',count(1) from ' + name + ' union'
from #temp1 where id > @count - @step and id <= @count
set @sql = left(@sql,len(@sql) - len('union'))
insert into #temp exec (@sql)
set @count = @count - @step
end
select count(count) 总表数,sum(count) 总记录数 from #temp
select * from #temp order by count,name
set nocount off
--drop table #temp
--方法3,自己写函数,有问题,因为数据库用户表名USER,可能和系统表冲突,修改后可以正常运行,结果正确
create table #(id int identity ,tblname varchar(50),num int)

declare @name varchar(50)

declare roy cursor for select name from sysobjects where xtype='U'

open roy

fetch next from roy into @name

while @@fetch_status=0

begin

declare @i int

declare @sql nvarchar(4000)

set @sql='select @n=count(1) from '+@name

exec sp_executesql @sql,N'@n int output',@i output

insert into # select @name,@I

fetch next from roy into @name

end

close roy

deallocate roy

select * from #
--drop table #
分享到:
评论

相关推荐

    SQL Server遍历表中记录的2种方法(使用表变量和游标)

    总结,遍历SQL Server表中的记录,可以采用表变量配合循环的方式,或者使用游标。表变量方法简洁且对数据的影响可控,但可能需要额外删除已处理的行。游标提供了逐行处理的灵活性,但效率较低,应作为最后的手段。在...

    SqlServer快速获得表总记录数(大数据量)

    SqlServer快速获得表总记录数(大数据量) 千万级数据小case

    MS SQL Server查询小数位数语句

    MS SQL Server查询语句,以小数位数作为条件,可查询符合条件的记录。可查询多位小数位数。

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程

    12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录.mp4 15.SQL Server 2014条件限制where.mp4 16.SQL Server 2014 BETWEEN语法.mp4 17.SQL Server 2014子查询...

    SQLServer查询耗费大量资源的语句.txt

    ### SQL Server 查询优化:识别与分析高资源消耗的SQL语句 #### 背景介绍 在数据库管理系统(DBMS)中,SQL Server 是一种广泛使用的解决方案,它为各种规模的企业提供强大的数据存储和处理能力。然而,在实际应用...

    sqlserver 循环临时表插入数据到另一张表

    sqlserver 循环临时表插入数据到另一张表 -- 声明变量 DECLARE @SupCode as varchar(100), @ProdCode as varchar(50), @PackLayer as varchar(50), @CodeStatus as varchar(50), @ProductId as varchar(50), @...

    SQL Server 查询两个日期之间的所有月份

    在SQL Server中,查询两个日期之间的所有月份是一个常见的需求,特别是在数据分析、报表生成或时间序列分析等场景。本文将详细讲解如何使用SQL Server实现这一功能,以满足上述标题和描述中的要求。 首先,我们需要...

    SQLServer的性能调优:解决查询速度慢的五种方法

    本文主要通过一下几个方面介绍:使用SQLDMV查找慢速查询、通过APM解决方案查询报告、SQLServer扩展事件、SQLAzure查询性能洞察等相关内容。本文来自博客园,由火龙果软件Anna编辑、推荐。SQLServer的一个重要功能是...

    SQL Server 2014基础入门视频教程 (40集,含课件)

    12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录.mp4 15.SQL Server 2014条件限制where.mp4 16.SQL Server 2014 BETWEEN语法.mp4 17.SQL Server 2014子查询...

    sqlserver查询分析器 win10可用

    SQL Server查询分析器是Microsoft SQL Server数据库管理系统中的一个重要工具,主要用于编写、执行和测试SQL语句,以及查看查询结果。在Windows 10操作系统(x64)环境下,选择一个兼容且功能强大的查询分析器至关...

    SQL Server数据库查询速度慢原因及优化方法

    【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:  1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)  2、I/O吞吐量小,形成了瓶颈效应。  3、没有...

    基于SQL server 2008数据库的ifix操作记录教程

    数据库的事务日志是记录所有更改的重要部分,它跟踪对数据的增、删、改操作。通过查询事务日志,我们可以回溯到任何特定时间点的数据状态,这对于故障排查、审计和数据恢复都非常有用。 在“基于SQL server 2008...

    SQL SERVER 多表联接查询SQL SERVER 多表联接查询SQL SERVER 多表联接查询

    SQL Server 多表联接查询 SQL Server 是一个功能强大且灵活的关系数据库管理系统,支持多表联接查询,能够从多个表中检索数据,以满足复杂的业务需求。在本节中,我们将详细介绍 SQL Server 的多表联接查询,包括...

    40集SQL Server 基础入门视频教程 SQL Server 数据库基础入门必备课程.txt

    12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录.mp4 15.SQL Server 2014条件限制where.mp4 16.SQL Server 2014 BETWEEN语法.mp4 17.SQL Server 2014子查询...

    SQL_server将表中的记录转换成Insert(插入)SQL语句

    SQL_server将表中的记录转换成Insert(插入)SQL语句,SQL_server将表中的记录转换成Insert(插入)SQL语句

    sqlserver表数据生成insertsql脚本(导出成insertsql脚本).pdf

    SQL Server表数据生成INSERT SQL脚本 SQL Server是一种强大的关系数据库管理系统,提供了多种方式来生成INSERT SQL脚本,以便将数据导出到其他数据库或系统中。在本文中,我们将介绍如何使用SQL Server 2008中文版...

    SQL Server 2000系统表地图.rar_sql_sql server_sql server 2000_多变量

    例如,`sysdatabases`表存储了所有数据库的信息,`syslogs`记录了SQL Server的日志信息,而`sysprocesses`则展示了当前的进程和会话状态。 3. **model数据库中的系统表**:model数据库是所有新创建的用户数据库的...

    SQL语句实现跨Sql server数据库操作实例

    这里假设我们需要从IP地址为192.168.1.1的SQL Server实例(数据库名为TT)中查询表test1的所有记录。 **SQL语句示例**: ```sql SELECT * FROM OPENQUERY( [远程服务器别名], 'SELECT * FROM TT.dbo.test1' ) ``...

    SQL Server查询中的特殊字符处理

    在SQL Server中,查询语句可能会遇到各种特殊字符,这些字符在特定的上下文中具有特殊的含义,如果直接使用,可能会影响到查询的结果。本篇将详细阐述如何处理这些特殊字符,特别是针对`LIKE`操作的特殊字符。 首先...

    易语言SQLSERVER查询分析器

    《易语言SQLSERVER查询分析器》是一款专为易语言编程环境设计的工具,它提供了连接、操作和分析SQL Server数据库的能力。源码的开放性使得开发者可以深入理解其内部工作原理,同时也为自定义功能和扩展提供了可能。...

Global site tag (gtag.js) - Google Analytics