如何列出数据库中所有表内容在一行及以上的表中的内容?

安琪有纪 2008-03-04 10:35:15
如题,也就是要把所有非空的表中的内容列出来
...全文
56 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wukele 2008-03-30
又学到一个存储过程
回复
chuifengde 2008-03-04
sp_msforeachtable 'if (select top 1 rows from sysindexes where id=object_id(''?'') and status=0)>0 select ''?'' 表名, * from ?'
回复
liangCK 2008-03-04
上面纯属手写,可能存在手误.
回复
青锋-SS 2008-03-04
从系统表sysobjects里面检索表名,然后再用动态语句检索
回复
liangCK 2008-03-04
decuare cur cursor for 
select name from sysobjects where xtype='U'
declare @tbname varchar(128)
declare @cnt int
declare @sql nvarchar(400)
open cur
fetch next from cur into @tbname
while @@fetch_status=0
begin
set @sql=N'select @cnt=count(*) from ['+@bname+N']'
exec sp_executesql @sql,'@cnt int output',@cnt output
if @cnt>0
exec ('select * from ['+@tbname+']')
fetch next from cur into @tbname
end
close cur
deallocate cur
回复
chuifengde 2008-03-04
那就
sp_msforeachtable 'if exists(select top 1 1 from ?) select ''?'' 表名, * from ?'
回复
安琪有纪 2008-03-04
[Quote=引用 4 楼 chuifengde 的回复:]
SQL codesp_msforeachtable 'if (select top 1 rows from sysindexes where id=object_id(''?'') and status=0)>0 select ''?'' 表名, * from ?'
[/Quote]

这个选出来的不全,却又不知道差在哪儿
回复
安琪有纪 2008-03-04
[Quote=引用 3 楼 liangCK 的回复:]
上面纯属手写,可能存在手误.
[/Quote]


过程需要参数 '@parameters' 为 'ntext/nchar/nvarchar' 类型。

这个需要2005 不? 2000能执行?
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-04 10:35
社区公告
暂无公告