我正在执行数据库迁移到一个新的ERP系统,当前的Microsoft数据库有超过3000个表,其中95%的表没有数据,在计算模式时造成了很大的痛苦/噪音。
是否有一种方法可以为数据库中的每个非空表打印头和前三行数据?
谢谢你的帮助!
发布于 2018-11-16 15:56:11
Server具有不支持的sp_MSforeachtable。所以,你可以:
exec sp_MSforeachtable @command1='select top (3) * from ? where exists (select 1 from ?)';否则,您将使用游标或其他循环机制来实现基本相同的功能。
编辑:
耶伦提出了一个很好的建议:
exec sp_MSforeachtable @command1='if exists (select 1 from ?) select top (3) ''?'' as table_name, t.* from ? t';这也增加了额外香料的表名。
发布于 2018-11-16 15:56:42
您可以使用sp_MSforeachtable函数
EXEC sp_MSforeachtable 'PRINT ''?''; SELECT TOP 3 * FROM ?'https://stackoverflow.com/questions/53341296
复制相似问题