Sql-Server-2008

如何使用sql為同一個數據庫中的每個表選擇前10條記錄

  • May 8, 2020

我在數據庫中有 50 多個表。

我不想在數據庫中的每個表上使用以下 SQL。

select * from {table_name}

那麼,是否可以使用 sql 顯示同一數據庫中每個表的前 10 條記錄?

我會小心使用sp_MSforeachtable,因為它使用與 相同的程式碼模式sp_MSforeachdb。我已經指出了sp_MSforeachdb 這裡的問題(向後工作),並被告知它不會在 Connect 上修復(在他們殺死它之前,所以這個連結不再有效)這裡

相反,我會做這樣的事情(它還包括輸出中的表名,可能有用):

DECLARE @sql nvarchar(max) = N'';

SELECT @sql += N'

SELECT TOP (10) [table] = N''' + REPLACE(name, '''','') + ''', * 
   FROM ' + QUOTENAME(SCHEMA_NAME([schema_id]))
 + '.' + QUOTENAME(name) + ';'
FROM sys.tables AS t;

PRINT @sql;
-- EXEC sys.sp_executesql @sql;

當您對輸出感到滿意時PRINT(請注意,它將在 8K 處截斷),取消註釋EXEC.

引用自:https://dba.stackexchange.com/questions/35529