--方法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遍历表一般都要用到游标,SQL Server中可以很容易的用游标实现循环,实现SQL Server遍历表中记录。本文将介绍利用使用表变量和游标实现数据库中表的遍历。 表变量来实现表的遍历 以下代码中,代码块之间的...
MS SQL Server查询语句,以小数位数作为条件,可查询符合条件的记录。可查询多位小数位数。
SQL Server 多表联接查询 SQL Server 是一个功能强大且灵活的关系数据库管理系统,支持多表联接查询,能够从多个表中检索数据,以满足复杂的业务需求。在本节中,我们将详细介绍 SQL Server 的多表联接查询,包括...
本文主要通过一下几个方面介绍:使用SQLDMV查找慢速查询、通过APM解决方案查询报告、SQLServer扩展事件、SQLAzure查询性能洞察等相关内容。本文来自博客园,由火龙果软件Anna编辑、推荐。SQLServer的一个重要功能是...
SqlServer快速获得表总记录数(大数据量) 千万级数据小case
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子查询...
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子查询...
系统跑久了,对于所有的索引想做一个具体的确认,所以写了这么一段, 可以用来分析自己数据的表及索引详情 针对记录数比较大的表,尤其要注意索引的情况,非常影响性能
CREATE PROCEDURE [dbo] [sys viewTableSpace] AS BEGIN SET NOCOUNT ON; CREATE TABLE [dbo] #tableinfo 表名 [varchar] 50 COLLATE Chinese PRC CI AS NULL 记录数 [int] NULL
易语言SQLSERVER查询分析器源码,SQLSERVER查询分析器,连接sqlserver,关闭sqlserver连接,执行sql,取数据表,排列布局,取字段,取记录,查询sql
获取SQL SERVER数据库中每张用户表的记录数
在了解查询计划的基础上,我们还需要了解SqlServer查找记录的方法。SqlServer有二种索引:聚集索引和非聚集索引。二者的差别在于:【聚集索引】直接决定了记录的存放位置,或者说:根据聚集索引可以直接获取到记录。...
SQL查询最新充值记录余额.xls
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数据库中如何判断是否存在某张表呢,如果不存在又如何创建与该表结构相同的新表呢,(如:已知表Log,判断当前月份的表Log_201512是否存在,若不存在,创建之)?其实很简单,只需一条sql语句,...
在MS SQL Server中如何处理记录条数2000万以上且每日增加20万条的数据表,相信是很多开发人员面临的难题.本文以实际案例描述了此问题的解决方法及其存在的问题.在SQL Server 2000中,可以通过分区视图的定义来支持...
基于SQL server 2008数据库的ifix操作记录教程,有详细的操作步骤
SQLServer 中将一个字段的多个记录值合并到一行显示的实现方法 SQL Server 是一种关系型数据库管理系统,具有强大的数据处理能力和存储能力。在实际应用中,我们经常需要将一个字段的多个记录值合并到一行显示,以...
SQL_server将表中的记录转换成Insert(插入)SQL语句,SQL_server将表中的记录转换成Insert(插入)SQL语句
SQL Server为每个触发器都创建了两个专用虚拟表:inserted表和deleted表。这两个表由系统来维护,他们存在于内存中,而不是在数据库中。这两个表的结构总是与被该触发器作用的表结构相同。触发器执行完成后,与该...