2010-07-08 8 views

Odpowiedz

8

Można użyć dynamicznego 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

Dzięki Andomar. Myślę, że jest to bardziej dostosowane do mojej sytuacji niż procedura składowana "sp_MSForEachDB", ponieważ może potrzebować być bardziej niestandardowy dla każdej bazy danych. Za pomocą tej metody mogłem stworzyć pętlę i różne warunki IF, aby uzyskać wymagane wyniki. Dzięki. – Curt

3

Jest nieudokumentowana procedura przechowywana sp_MSForEachDB który wykona dla każdej bazy danych SQL.

EXEC sp_msforeachdb 'PRINT ''?''' 

? to nazwa bazy danych.

11
EXEC sp_MSForEachDB ' Use ?; UPDATE ?.dbo.MyTable SET MyValue=999 ' 
Powiązane problemy