Database/MS SQL

sp_MSforeachdb 와 sp_MSforeachtable

catchv 2011. 9. 28. 13:26

SQL Server 운영을 하다 보면 데이터베이스 전체 또는 테이블 전체에 뭔가 작업을 할 일들이 생긴다.
그래서 만들어 놓은 것인지 MS에서 제공하는 프로시져가 있다.
sp_MSforeachdb sp_MSforeachtable 이다.
?
데이터베이스나 테이블 이름으로 인식을 한다.
Foreach
같이 테이블 처음부터 끝까지 루프하게 된다.
간단한 예제는

EXEC sp_MSforeachdb 'PRINT '' ? '' '
GO

master

tempdb

model

msdb

ReportServer

ReportServerTempDB

test

SHOPERP

AdventureWorks2008R2

AdventureWorksDW2008R2

AdventureWorksLT2008R2

AdventureWorks

AdventureWorksDW

AdventureWorksLT

EntLibQuickStarts

 

EXEC sp_MSforeachtable 'PRINT '' ? '' '

GO

[dbo].[JJ]

[dbo].[JJ1]

[dbo].[JJ2_Tbl]

[dbo].[JJ3]

[dbo].[JJ4]

[dbo].[JJ5]

[dbo].[test]

[dbo].[t__1]

[dbo].[t__2]


웹을 검색해 보면 다양한 응용이 나와 있다.