1:新建表(把数据插入到表里)(表名,记录数)
2:循环得到,所有数据库中的所有表
3:通过 系统表的联系,得到,记录数,和表名
4插入 到 表中
代码如下:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[get_db_count]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[get_db_count]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE proc get_db_count
as
declare @basenames varchar(1000)
declare @basename varchar(100)
declare @base_tables varchar(4000)
set @base_tables=''
set @basenames=''
declare @temp varchar(1000)
set @temp='drop table master.dbo.Get_db_table'
--exec(@temp)
exec('create table master.dbo.Get_db_table(t_name varchar(100),count varchar(50))')
select @basenames=@basenames+[name]+',' from master.dbo.sysdatabases where dbid>6
while (patindex('%,%',@basenames)>0)
begin
set @basename=left(@basenames,patindex('%,%',@basenames)-1)
set @basenames=substring(@basenames, patindex('%,%',@basenames)+1,100)
declare @sql1 varchar(1000)
declare @sysindexes varchar(100)
declare @sysobjects varchar(100)
set @sysindexes=@basename+'.dbo.sysindexes'
set @sysobjects=@basename+'.dbo.sysobjects'
--set @sql1=@sql1+'select '+ @sysobjects+'.name ,rows from '+ @sysindexes+','+@sysobjects+' where '+@sysobjects+'.id ='+@sysindexes+'.id and '+@sysindexes+'.indid in (0,1) and '+@sysobjects+'.type=''u'' '-- and '+@sysindexes+'.rows>=0 '
insert master.dbo.Get_db_table exec('select '+ @sysobjects+'.name ,rows from '+ @sysindexes+','+@sysobjects+' where '+@sysobjects+'.id ='+@sysindexes+'.id and '+@sysindexes+'.indid in (0,1) and '+@sysobjects+'.type=''u'' and '+@sysindexes+'.rows>=0 ')
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO