+ -
当前位置:首页 → 问答吧 → 如何sql语句查询出数据库每个表的几条数据?

如何sql语句查询出数据库每个表的几条数据?

时间:2011-12-17

来源:互联网

每个表很大,需要sql语句查询出数据库每个表的前几条数据,如10 条, 并且显示那个表名。 另一个库已经有空表若干,如果有相应的insert into 更好了,谢谢了!

作者: iamsea22   发布时间: 2011-12-17

如果要将各表的前10条插入到别一个数据库已经存在的空表中,只要:
use 含有空表的库
insert into t1 select top 10 from 原库.dbo.t1
insert into t2 select top 10 from 原库.dbo.t2
insert into t3 select top 10 from 原库.dbo.t3
insert into t4 select top 10 from 原库.dbo.t4
....

作者: qianjin036a   发布时间: 2011-12-17

SQL code

--在新库的查询分析器中执行
insert into tb1 select top 10 * from 原数据库名.dbo.tb1

作者: pengxuan   发布时间: 2011-12-17

因为表名很多,如何把t1 ,2 等变成通用的? 即拿到其他数据库也行。

作者: iamsea22   发布时间: 2011-12-17

SQL code
--获取库中所有表及该表的记录数

declare @sql varchar(8000)
set @sql='select * from ('
select @sql=@sql+' select name = ''' + name + ''' , count(*) as num from ['+name+'] union all ' from sysobjects where xtype='u'
set @sql = left(@sql,len(@sql) - 10) + ')a'
exec(@sql)

/*
--sql server 2000 自带库 pubs 的结果
name        num         
----------- ----------- 
titleauthor 25
stores      6
sales       21
roysched    86
discounts   3
jobs        14
pub_info    8
employee    43
authors     23
publishers  8
titles      18
*/

作者: dawugui   发布时间: 2011-12-18

--以上为查询,如需要插入另外的一个空表,例如:TB,字段对应为:name,num

SQL code
declare @sql varchar(8000)
set @sql='insert into tb select * from ('
select @sql=@sql+' select name = ''' + name + ''' , count(*) as num from ['+name+'] union all ' from sysobjects where xtype='u'
set @sql = left(@sql,len(@sql) - 10) + ')a'
exec(@sql)

作者: dawugui   发布时间: 2011-12-18

这种移动,还是一个表一个表地做吧.

作者: qianjin036a   发布时间: 2011-12-18