En utilisant ce guide, vous apprendrez à utiliser la procédure stockée SP_MSForEachDB (), comment l'utiliser et divers exemples d'utilisation de la procédure.
Système.sp_msForEachdb ()
Le SP_MSForEachDB () est une procédure stockée sans papiers disponible dans la base de données maîtresse. Il vous permet de faire une parole sur toutes les bases de données de l'instance SQL Server et d'exécuter des requêtes SQL par rapport aux bases de données spécifiées.
Dans SQL Server Management Studio, vous pouvez afficher cette procédure en accédant à la base de données maître -> Programmabilité -> Procédures stockées -> Procédures stockées système.
Nous pouvons exprimer la syntaxe de procédure comme indiqué:
Déclarer @Command Varchar (255)Regardons maintenant quelques exemples d'utilisation de la procédure.
Exemple 1-présentant les noms de toutes les bases de données
Supposons que vous souhaitiez obtenir les noms de toutes les bases de données de l'instance SQL Server; Vous pouvez utiliser la procédure MSForEachDB () comme indiqué dans l'exemple ci-dessous:
Déclarer @Command Varchar (255)L'ensemble de requêtes ci-dessus doit renvoyer les noms de toutes les bases de données de l'instance. Un exemple de sortie est comme indiqué:
maîtreExemple 2 - Afficher les tailles de base de données
Bien qu'il existe différentes façons d'utiliser pour obtenir la taille d'une base de données dans SQL Server, dans cet exemple, nous utiliserons la procédure sp_spaceUsed.
Considérez l'exemple ci-dessous:
Déclarer @Command Varchar (255)À l'aide d'une seule commande, nous pouvons afficher la taille de toutes les bases de données comme indiqué dans l'exemple de sortie ci-dessous:
Exemple 3 - Afficher toutes les colonnes dans les bases de données
Pour afficher les colonnes dans chaque base de données, vous pouvez exécuter une requête comme indiqué dans l'exemple d'extrait ci-dessous:
Declare @Command Varchar (255);La requête ci-dessus doit renvoyer les colonnes dans chaque base de données comme indiqué:
Exemple 4 - Réduire toutes les bases de données
Vous pouvez réduire la taille de toutes les bases de données du serveur à l'aide de la procédure MSForEachDB comme indiqué ci-dessous:
Declare @Command Varchar (255);La requête d'exemple ci-dessus essaiera de réduire la taille de toutes les bases de données du serveur. Si vous avez une collection complète de bases de données, évitez d'utiliser cette requête car elle peut prendre beaucoup de temps et empêcher d'autres processus d'utiliser les bases de données.
L'exemple de sortie est comme indiqué:
Fermeture
Fermeture
Ce didacticiel vous montre comment utiliser la procédure stockée SP_MSFOREACHDB () pour exécuter des requêtes SQL sur toutes les bases de données de l'instance SQL Server.
Merci d'avoir lu et restez à l'écoute pour plus de tutoriels SQL Server.