Sql-Server-2008
如何使用sql為同一個數據庫中的每個表選擇前10條記錄
我在數據庫中有 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;
當您對輸出感到滿意時
EXEC
.