SQL Server/SQL Server 자주보는

[MSSQL] 모든 데이터베이스에 접속하여 쿼리를 날리는 방법

꽁담 2019. 3. 26. 15:16

USE [?] 를 사용하자


USE [?] 는 모든 데이터베이스에 접속하겠다는 의미를 나타냅니다.

USE [?] 는 SQL Server 에서 지원하는 SP_MSFOREACHDB 프로시저와 함께 사용해야 합니다.



USE [?] 의 사용법


SELECT DB_NAME() 란에 원하는 쿼리를 넣어서 사용하시면 됩니다.

참고로 쿼리에서 ' 를 쓰기를 원하는 경우 ' 를 하나 더 붙여서 '' 로 사용해야 합니다.

EXEC MASTER..SP_MSFOREACHDB '

USE [?]

BEGIN

  SELECT DB_NAME()

END

'



USE [?] 에서 특정 데이터베이스 제외하기


USE [?] 하단에 IF ''?' <> 로 제외할 수 있습니다.

EXEC MASTER..SP_MSFOREACHDB '

USE [?]

IF ''?'' <> ''master'' AND ''?'' <> ''model'' AND ''?'' <> ''msdb'' AND ''?'' <> ''tempdb''

BEGIN

  SELECT DB_NAME()

END

'