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
'