sp_MSforeachdb 를 사용하면 된다.
사용예시
1. 모든 db에서 test라는 이름을 포함한 테이블을 찾아야하는 경우 아래와 같이 실행하면 된다.
exec sp_MSforeachdb 'use [?]; select ''?'', * from sys.tables where name like N''%test%'''
?에는 순차적으로 db명이 들어간다.
select 절에 '?' 를 추출하는 이유는 어떤 db인지 알기 위해 추가했다.
2. 사용자 데이터베이스(온라인 상태만) 전체 백업하기
exec sp_msforeachdb 'IF EXISTS(SELECT 1 FROM SYS.DATABASES WHERE NAME = ''?'' AND DATABASE_ID > 4 AND STATE = 0)
BACKUP DATABASE [?] TO DISK = "D:\test\?_230628.bak" WITH INIT, STATS = 10;'
3. DB 사용자 SID 값 맵핑
exec sp_msforeachdb 'use [?]; exec sp_change_users_login ''Update_One'',''sa'',''sa'''
'MSSQL' 카테고리의 다른 글
[MSSQL] 데이터베이스 복원(RESTORE DATABASE) (0) | 2024.06.28 |
---|---|
[MSSQL] 전체 테이블 대상으로 쿼리 실행(sp_MSforeachtable) (0) | 2024.06.28 |
[MSSQL] CMD명령어를 통해 파일존재여부 값을 받아서 처리하는 방법 (0) | 2024.06.21 |
[MSSQL] 유지 관리 계획 IP 설정 값 변경 (0) | 2024.06.21 |
[MSSQL] sp_who2 DB별 조회 (0) | 2024.06.21 |