Blog

Exécuter un script sur toutes les tables d’une base de données


La procédure stockée système sp_msforeachtable permet d’exécuter un script sur toutes les tables d’une base de données. Le nom de la table correspond au point d’interrogation. Typiquement, si l’on souhaite désactiver les contraintes sur toutes les tables d’une base de données, on pourra procéder ainsi :

NB : La désactivation des contraintes de clé étrangères suffit pour insérer ou supprimer librement des données dans une table mais elle ne permet pas de procéder à un TRUNCATE. Pour se faire, il est nécessaire de supprimer la contrainte FK :

http://www.concatskills.com/2017/04/19/scripter-creation-suppression-contraintes-fk/

Autre exemple, pour désactiver et activer les triggers en masse on pourra là encore utiliser la procédure stockée système sp_msforeachtable :

On peut bien évidemment faire des choses beaucoup plus évoluées mais j’ai préféré des exemples simples pour illustrer mon propos, sans compter qu’ils répondent à des besoins très répandus.

Auteur

Expert SQL Server - Exécuter un script sur toutes les tables d'une base de données - SQL Server  - avatar_ninja_tete-150x150
Sarah Bessard
Experte SQL Server Prod/Etude avec un bonus sur la BI, les maîtres mots sont : performance, industrialisation, méthodologie & bonne humeur. Besoin d'une expertise SQL Server ? N'hésitez pas à me contacter.

Leave a comment

Your email address will not be published.

error: