2010-07-08 6 views

Répondre

8

Vous pouvez utiliser SQL dynamique:

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

Merci Andomar. Je pense que cela est plus adapté à ma situation que la procédure stockée 'sp_MSForEachDB' car il se peut que je doive être plus personnalisé avec chaque base de données. En utilisant cette méthode, je pourrais créer une boucle et diverses conditions IF pour obtenir les résultats dont j'ai besoin. Merci. – Curt

3

Il y a une procédure stockée non documentée sp_MSForEachDB qui exécutera SQL pour chaque base de données.

EXEC sp_msforeachdb 'PRINT ''?''' 

Le? est le nom de la base de données.

11
EXEC sp_MSForEachDB ' Use ?; UPDATE ?.dbo.MyTable SET MyValue=999 ' 
Questions connexes