查询数据库中所有不为空的表的表名????

Waldenz 2010-12-31 02:36:01
我知道写个游标

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








...全文
438 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yumeng0906 2013-06-07
  • 打赏
  • 举报
回复
select table_name from all_tables where owner='用户' and num_rows != 0;
Waldenz 2010-12-31
  • 打赏
  • 举报
回复
我也试了啊 结果把我所有的表名都输出来了
我要的是有数据的表名
飘零一叶 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 enter89 的回复:]
3F的不正确
[/Quote]
我那个是查询为空的表
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
飘零一叶 2010-12-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 enter89 的回复:]
3F的不正确
[/Quote]那里不正确?我测试完了的
Waldenz 2010-12-31
  • 打赏
  • 举报
回复
3F的不正确
水族杰纶 2010-12-31
  • 打赏
  • 举报
回复
--也来一个吧
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 ##'
飘零一叶 2010-12-31
  • 打赏
  • 举报
回复
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
员工信息表

claro 2010-12-31
  • 打赏
  • 举报
回复
???
select distinct OBJECT_NAME(id)
from sys.sysindexes
where id > 100 --and indid =0
and rowcnt >0
王向飞 2010-12-31
  • 打赏
  • 举报
回复
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

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧