jeudi 7 octobre 2010

sp_msForEachDB

Après l'article "sp_msForEachTable, la perle cachée", voici une présentation de sp_msForEachDB.

Cette autre stored procedure made-in Microsoft permet d'exécuter une commande pour chacune des DB présentes sur le serveur.
Bien partique si, par exemple, l'on veut vérifier la taille du transaction log pour chacune des 20 DB.
Bien qu'il soit possible d'extraire cette information des tables systèmes, sp_msForEachDB m'a rendu ce petit service rapidement et facilement.

Le script ci-dessous utiliser sp_msForEachDB pour générer un autre script sql qu'il ne reste plus qu'a exécuter.
L'execution aurait put être faite directement mais une erreur étant si vite arrivée, il faut mieux être prudent et relire le résultat..


sp_msForEachDB 'print "print ''---- Check SpaceUsed ? ------------------------''" ; print "USE [?]" ; print "GO"; print "sp_helpfile" ; print "GO" ; print "print '' ''" ; print "print '' ''" ; '

Aucun commentaire: