数据库中多张表的所有字段都相同,怎么用一条sql语句查询这些数据的个数,不然一个表一个表查询太麻烦了
比如:100张表,现在我是这样写的:selectcount(*)fromtable1,selectcount(*)fromtable2,...就这样一直查,这太麻烦了...
比如:100张表,现在我是这样写的:select count(*) from table1,select count(*) from table2,...就这样一直查,这太麻烦了
展开
4个回答
展开全部
说一下几种思路:
一、如果你的表名是有规律的,就用循环组合成sql,再执行。如:
declare @i int,@sql varchar(1000)
set @i=1
while @i<10
begin
set @sql='select count(*) from table'+convert(varchar,@i)
exec @sql
end
二、把表名从系统表里取出,来组成sql
select ''select count(*) from '+name from sysobjects where xtype='u'
再把sql取出来执行既可。
三、如果你有兴趣研究,还可以使用微软未公开的存储过程来处理 sp_MSforeachtable。这个就不详写了。
一、如果你的表名是有规律的,就用循环组合成sql,再执行。如:
declare @i int,@sql varchar(1000)
set @i=1
while @i<10
begin
set @sql='select count(*) from table'+convert(varchar,@i)
exec @sql
end
二、把表名从系统表里取出,来组成sql
select ''select count(*) from '+name from sysobjects where xtype='u'
再把sql取出来执行既可。
三、如果你有兴趣研究,还可以使用微软未公开的存储过程来处理 sp_MSforeachtable。这个就不详写了。
展开全部
查询这张表User_Tables的num_rows字段,如果你查询的表名有相似性,where条件中可以用like,如果没有那你就把表名列上吧in ()
比如:
select table_name,num_rows from User_Tables WHERE table_name LIKE 'TS%';
比如:
select table_name,num_rows from User_Tables WHERE table_name LIKE 'TS%';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这些表名,好像是存放在一张系统表中的,这样写不知道对不对,你可以试试
select count(*) from (这里写条SQL语句,从系统表中查出你的表);
我也不知道对不对,本机没数据库测试,lz自己试试吧。
select count(*) from (这里写条SQL语句,从系统表中查出你的表);
我也不知道对不对,本机没数据库测试,lz自己试试吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能把表 union 一下吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询