2014-01-06 27 views
-1

我的活動服務器中有大約700個數據庫。所有這些數據庫都有一個名爲LogTbl的表。我需要爲所有700個數據庫列出此表中所有行的列表。獲取特定服務器中所有數據庫的特定表中的所有行

到目前爲止,我已經試過

Declare @ServerName nvarchar(500), @dbName nvarchar(500), @key int, @msg_id int, @text nvarchar(max), @source nvarchar(max), @logdate datetime 


SELECT name FROM sys.databases FOR XML AUTO 

select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'logtbl' 

然後我不知道。我需要返回1結果集與以下字段

Servername, database, key, msg_id, text, source, logdate 

其中key, msg_id, text, source, logdate是表列。

回答

0

是這樣的:

create table #tbl (table_name varchar(500)) 

exec sp_msforeachdb 'insert into #tbl select table_name from [?].information_schema.tables' 

select * from #tbl 

照顧與系統數據庫的sp_msforeachdb。 您可以想象在sp_msforeachdb內部創建一個if_name子句,其中table_name logtbl應該存在。

+0

OP問題要求在一個結果集上 –

+0

請注意,sp_MSforeachdb並未得到Microsoft的正式支持,理論上可能會在未來版本中刪除。 –

+0

這是很好的代碼,我得到了我需要的所有表格。現在我需要每個表的所有行。 – Nisha

相關問題