首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询数据库中全部不为空的表的表名?

2013-06-25 
查询数据库中所有不为空的表的表名????我知道写个游标declare @name varchar(200)declare A cursor for (S

查询数据库中所有不为空的表的表名????
我知道写个游标


declare @name varchar(200)
declare A cursor for (SELECT name FROM sysobjects where type='U')
OPEN A 
      fetch next from A into @name
WHILE @@FETCH_STATUS=0
    begin
        ---这里怎么写呢??
       fetch next from A into @name
    end
close A
deallocate A









[解决办法]
declare @s varchar(200)
set @s =''
declare @t table (tablename varchar(20), ct int)
set @s ='select '+@name+' count(1) from '+@name

insert into @t
exec (@s)










select * from @t

[解决办法]
???
select distinct OBJECT_NAME(id)
from sys.sysindexes
where id > 100 --and indid =0 
and rowcnt >0

[解决办法]
declare @name varchar(200)
declare @i int
declare @result table (name varchar(100))
declare @s nvarchar(100)
declare A cursor for (SELECT name FROM sysobjects where type='U')
OPEN A 
      fetch next from A into @name
    WHILE @@FETCH_STATUS=0
        begin
            set @s='select @i=COUNT(1) from '+@name+''
            exec sp_executesql @s,N'@i int output',@i output
            if @i=0
            insert into @result select @name
        fetch next from A into @name
        end
close A
deallocate A
select * from @result
-----------
name
员工工资表
员工考勤表
员工请假表
Job
na
员工信息表


[解决办法]
--也来一个吧
exec   sp_MSForEachTable     
@precommand=N'   
create   table   ##(   
表名   sysname,   
记录数   int,   
保留空间   Nvarchar(10),   
使用空间   varchar(10),   


索引使用空间   varchar(10),   
未用空间   varchar(10))',   
@command1=N'insert   ##   exec   sp_spaceused   ''?''',   
@postcommand=N'select  表名  from   ##   where  记录数>0   drop   table   ##' 

热点排行