2010-07-08 5 views

답변

8

당신은 동적 SQL 사용할 수 있습니다

declare @query varchar(max) 
set @query = '' 

select @query = @query + 'UPDATE ' + name + 
      '.dbo.YourTable set value = 1 where id = 2; ' 
from master.sys.databases 
where name <> 'master' 

exec (@query) 
+0

감사합니다. Andomar. 나는 내 상황에 맞는 'sp_MSForEachDB'저장 프로 시저보다 각각의 데이터베이스와 더 많은 사용자 지정해야 할 수도 있습니다 생각합니다. 이 방법을 사용하면 루프를 만들 수 있고 다양한 IF 조건을 사용하여 필요한 결과를 얻을 수 있습니다. 감사. – Curt

3

각 데이터베이스에 대해 SQL을 실행합니다 문서화되지 않은 저장 프로 시저 sp_MSForEachDB이입니다.

EXEC sp_msforeachdb 'PRINT ''?''' 

? 데이터베이스 이름입니다.

11
EXEC sp_MSForEachDB ' Use ?; UPDATE ?.dbo.MyTable SET MyValue=999 ' 
관련 문제