如何得到一个数据库中所有表的字段数和记录数

时间:2023-01-14 13:57:26
如,在数据库DB1中,要得到DB1中所有用户表的表名,字段数量,记录数量,
然后将这三个字段写进一个新表RESULT中,该怎么做?
最终结果形式如下:
RESULT
表名    字段数量   记录数量
TABLE1   10          1211
TABLE2    8           1456
……………………………………

望高手解答。

4 个解决方案

#1


select * from sysobjects  where xtype='U'

#2


select  object_name(id) ,count(*) as 字段数量 from  syscolumns 
group by  object_name(id)

#3


mark

#4


--得到数据库中所有表的空间/记录情况

exec sp_MSForEachTable 
@precommand=N'
create table ##(
id int identity,
表名 sysname,
字段数 int,
记录数 int,
保留空间 Nvarchar(10),
使用空间 varchar(10),
索引使用空间 varchar(10),
未用空间 varchar(10))',
@command1=N'insert ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_spaceused ''?''
update ## set 字段数=(select count(*) from syscolumns where id=object_id(''?'')) where id=scope_identity()',
@postcommand=N'select * from ## order by id drop table ##'

#1


select * from sysobjects  where xtype='U'

#2


select  object_name(id) ,count(*) as 字段数量 from  syscolumns 
group by  object_name(id)

#3


mark

#4


--得到数据库中所有表的空间/记录情况

exec sp_MSForEachTable 
@precommand=N'
create table ##(
id int identity,
表名 sysname,
字段数 int,
记录数 int,
保留空间 Nvarchar(10),
使用空间 varchar(10),
索引使用空间 varchar(10),
未用空间 varchar(10))',
@command1=N'insert ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_spaceused ''?''
update ## set 字段数=(select count(*) from syscolumns where id=object_id(''?'')) where id=scope_identity()',
@postcommand=N'select * from ## order by id drop table ##'