一尘不染

选择数据库中每个表的前3行

sql

我有一个包含69个表的数据库,我只想选择每个表的前三个记录。

我可以在 每个表 上执行以下操作:

SELECT TOP 3 * 
  FROM table_schema.table_name

但是,如果我要手动执行此操作,则将花费大量时间。

您能建议一个解决方法吗?

我尝试了此解决方案,但可以使其正常工作(我不知道如何针对MSSQL对其进行修改)

编辑 感谢您的答复。我可能还不够清楚:我的意思是我想解析每个单独的表,并且只获得前3个记录,而不是转到下一个表。以下是我需要的Yaroslav的代码

DECLARE @sql VARCHAR(MAX)='';
SELECT @sql=@sql+'SELECT TOP 3 * FROM '+'['+SCHEMA_NAME(schema_id)+'].['+name+']'+';'
  FROM sys.tables
EXEC(@sql)

阅读 146

收藏
2021-03-10

共1个答案

一尘不染

在这里,您有:

DECLARE @sql VARCHAR(MAX)='';
SELECT @sql=@sql+'SELECT TOP 3 * FROM '+'['+SCHEMA_NAME(schema_id)+'].['+name+']'+';'
  FROM sys.tables
EXEC(@sql)
2021-03-10