如何渲染示例数据库中所有表的所有记录,下面的查询返回所有表记录计数。但我想要样本数据库中所有表的所有记录。
SELECT TableName = o.name,
Rows = max(i.rows)
FROM sysobjects o
INNER JOIN sysindexes i
ON o.id = i.id
GROUP BY o.name
ORDER BY Rows DESC
答案 0 :(得分:3)
您可以使用未记录的(*)存储过程对数据库中的每个表运行查询:
exec sp_MSforeachtable 'select * from ?'
这将为每个表返回一个结果集。如果您希望将表名作为单独的列:
exec sp_MSforeachtable 'select ''?'' as TableName,* from ?'
没有简单的方法可以获得单个结果集,因为一般来说,数据库中所有表的列都不会相互兼容。
(*)希望这里的危险是显而易见的。它没有文档,因此它可能会根据应用于SQL Server的任何服务操作而消失或更改。另一方面,我怀疑他们会不会删除它,并且里面没有任何特殊的魔法。对于腰带和大括号,您可能希望以不同的名称将该过程复制到您自己的数据库中,然后您可以依赖它不被更改。