Parcourir plusieurs bases de données et exécuter un script SQL
Erismzn63
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Morgothal Messages postés 1236 Date d'inscription Statut Membre Dernière intervention -
Morgothal Messages postés 1236 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à développer un petit script qui permette de sectionner une liste de champs dans une table et ce pour chacune des bases de données d'un serveur.
J'ai du mal à savoir comment m'y prendre! Auriez vous des idées, exemples? Je suis preneur de toute remarques!
Merci a la communauté :)
Je cherche à développer un petit script qui permette de sectionner une liste de champs dans une table et ce pour chacune des bases de données d'un serveur.
J'ai du mal à savoir comment m'y prendre! Auriez vous des idées, exemples? Je suis preneur de toute remarques!
Merci a la communauté :)
A voir également:
- Script sql exemple
- Tableau word exemple - Guide
- Url exemple - Guide
- Script vidéo youtube - Guide
- Exemple de code ascii - Guide
- Gmail exemple - Guide
1 réponse
Bonjour,
En créant un curseur qui passe sur toutes les bases d'un serveur :
A+ !
-------------------
Cordialement,
Clément
En créant un curseur qui passe sur toutes les bases d'un serveur :
DECLARE @base varchar(20) DECLARE curseur CURSOR FOR SELECT name from master.sys.databases OPEN curseur FETCH curseur into @base WHILE @@FETCH_STATUS = 0 BEGIN print (@base) --select tes_champs from @base.ton_schéma.ta_table FETCH curseur INTO @base END CLOSE curseur DEALLOCATE curseur
A+ !
-------------------
Cordialement,
Clément
Je rencontre néanmoins un soucis de syntaxe (Msg 102, Niveau 15, État 1, Ligne 8
Incorrect syntax near '.'.) lors de son implémentation dans mon environnement (SQL serveur 2005).
DECLARE @base varchar(20)
DECLARE curseur CURSOR FOR SELECT name from master.sys.databases where database_id >4 and name like '%ipm%'
OPEN curseur
FETCH curseur into @base
WHILE @@FETCH_STATUS = 0
BEGIN
print (@base)
select us_libelle from @base . dbo.UTILISAT where us_libelle like '%be%'
--select us_libelle from IPM_V9E12.dbo.UTILISAT where us_libelle like '%be%'
FETCH curseur INTO @base
END
CLOSE curseur
DEALLOCATE curseur
Pour info, la ligne en commentaire, qui utilise "en dur" le nom d'une des bases fonctionne très bien.
Dans ton cas, je ferais comme ça :
(Il y a peut-être des erreurs de quotes)
A+