首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择所有非空Server表的前N行

选择所有非空Server表的前N行
EN

Stack Overflow用户
提问于 2018-11-16 15:53:13
回答 2查看 183关注 0票数 0

我正在执行数据库迁移到一个新的ERP系统,当前的Microsoft数据库有超过3000个表,其中95%的表没有数据,在计算模式时造成了很大的痛苦/噪音。

是否有一种方法可以为数据库中的每个非空表打印头和前三行数据?

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-16 15:56:11

Server具有不支持的sp_MSforeachtable。所以,你可以:

代码语言:javascript
复制
exec sp_MSforeachtable @command1='select top (3) * from ? where exists (select 1 from ?)';

否则,您将使用游标或其他循环机制来实现基本相同的功能。

编辑:

耶伦提出了一个很好的建议:

代码语言:javascript
复制
exec sp_MSforeachtable @command1='if exists (select 1 from ?) select top (3) ''?'' as table_name, t.* from ? t';

这也增加了额外香料的表名。

票数 5
EN

Stack Overflow用户

发布于 2018-11-16 15:56:42

您可以使用sp_MSforeachtable函数

代码语言:javascript
复制
EXEC sp_MSforeachtable 'PRINT ''?''; SELECT TOP 3 * FROM ?'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53341296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档