2016-11-22 2 views
1

동일한 SQL 서버 (SQL2012)에 수백 개의 데이터베이스가 있습니다. 모두 동일한 기본 구조를 갖고 있으며 데이터베이스의 'Contacts'평균 수를 얻으려고합니다.TSQL - sp_MSforeachdb의 결과 평균화

연락처 테이블에있는 연락처 수를 나타내는 sp_MSforeachdb 쿼리를 실행할 수 있지만 결과를 평균화해야합니다. 이 작업에 대한 지침.

은 내가 지금까지있어 쿼리입니다 : 나는 그것을 가능성이 매우 기본적인 물건 감사

exec sp_MSforeachdb 
'use ? 
IF DB_NAME() NOT IN ("model","tempdb","master","msdb") 
select count (CONTACTID) as TotalContacts from contact_tbl ' 

,하지만 난 여기에 새로운 그리고 난 그것을 밖으로 쓰레기를 봤와 많이 시도했습니다 기쁨이없는 여기에서 다른 제안의 다른 장소.

도움을 주시면 감사하겠습니다.

+1

다음 당신은 당신이 원하는대로 할 수있는 테이블의 수를 삽입 한 임시 테이블에 Sp_msforeachdb 프로 시저 결과를 삽입하고 찾을? –

+0

감사합니다. – KEW

답변

1

임시 테이블이 필요합니다. 평균

IF Object_id('tempdb..#avg') IS NOT NULL 
    DROP TABLE #avg 

CREATE TABLE #avg(cnt INT) 

INSERT INTO #avg(cnt) 
EXEC Sp_msforeachdb 
    'use ? 
    IF DB_NAME() NOT IN ("model","tempdb","master","msdb") 
    select count (CONTACTID) as TotalContacts from contact_tbl ' 

SELECT Avg(cnt) 
FROM #test 
+0

감사합니다. Prdp - TSQL은 여전히 ​​새로운 장이지만 꽤 기본적인 것으로 보입니다. - 아기 단계. – KEW