2010-07-08 12 views

Respuesta

8

Usted podría utilizar SQL dinámico:

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

Gracias Andomar. Creo que esto es más adecuado para mi situación que el procedimiento almacenado 'sp_MSForEachDB' ya que es posible que deba ser más personalizado con cada base de datos. Usando este método, podría crear un ciclo y varias condiciones IF para obtener los resultados que requiero. Gracias. – Curt

3

Existe un procedimiento almacenado indocumentado sp_MSForEachDB que ejecutará SQL para cada base de datos.

EXEC sp_msforeachdb 'PRINT ''?''' 

The? es el nombre de la base de datos.

11
EXEC sp_MSForEachDB ' Use ?; UPDATE ?.dbo.MyTable SET MyValue=999 ' 
Cuestiones relacionadas