본문 바로가기

DBMS/SQL Server

[SQL Server] sp_MSforeachdb 활용하기

 

sp_MSforeachdb 프로시저는 모든 데이터베이스 이름으로 지정한 명령을 수행하는 프로시저이다.

master 데이터베이스에 있으며, BOL(Books Online)에 문서화 되지 않은 프로시저이다.

이 프로시저를 다음과 같이 활용할 수 있다.

 

인스턴스 내에 있는 모든 데이터베이스에 대한 이름 확인

 

 EXEC sp_MSforeachdb 'USE ?; SELECT DB_NAME()'

 

 

 

 

인스턴스 내의 모든 데이터베이스의 helpfile 정보 확인

 

 EXEC sp_MSforeachdb 'USE ?; EXEC sp_helpfile'

 

 

 

인스턴스 내의 모든 데이터베이스에서 특정 컬럼이름을 포함하는 테이블 찾기

 

 -- 컬럼이름 STATUS를 포함하는 테이블 찾기

 EXEC sp_MSforeachdb 'SELECT * FROM ?.INFORMATION_SCHEMA.COLUMNS

                      WHERE COLUMN_NAME = ''STATUS''' 

 

  

 

 

인스턴스 내의 모든 데이터베이스에서 특정 단어를 포함하는 테이블 찾기

 

 -- A로 시작하는 테이블 찾기

 EXEC sp_MSforeachdb 'SELECT * FROM ?.INFORMATION_SCHEMA.TABLES

                      WHERE TABLE_NAME LIKE ''A%'''