2014-01-06 10 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' 

을 시도했다 그리고 나는 아무 생각도 없어. 나는 다음과 같은 필드 key, msg_id, text, source, logdate 테이블의 컬럼은

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

으로 한 결과 집합을 반환해야합니다. 이 같은

답변

0

뭔가 : 시스템 데이터베이스의 sp_msforeachdb와

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 내부에 table_name logtbl이 있어야하는 if 절을 만들 수 있습니다.

+0

OP 질문에 하나의 결과 집합이 있어야합니다. –

+0

sp_MSforeachdb는 Microsoft에서 공식적으로 지원하지 않으므로 이후 릴리스에서는 이론적으로 삭제 될 수 있습니다. –

+0

이것은 좋은 코드이며 필요한 모든 테이블을 얻습니다. 이제이 테이블 각각에 대해 모든 행이 필요합니다. – Nisha

관련 문제