Liste les bases et tables sur sqlser 200

Signaler
Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
-
cs_coq
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
bonjour a toutes et tous

ma question est simple (à poser du moins !)

est il possible en une seule requete
de lister toutes les bases d'un serveur sql
avec leurs tables.

si non

comment peut on récupérer la liste des tables d'une base avec le nom de la base ou en l'id de la base ... j'ai cherché en vain dans master
sur quel critère faire une jointure.

Merci de votre aide

5 réponses

Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
76
Bonjour,

En un seule requête je ne pense pas (ou en tout cas ne connait pas la solution).

Pour la seconde question : DB_ID() et DB_NAME() donneront ces informations, dans le contexte d'exécution de la requête.


/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
En une seule requete,
- Toutes les bases, OUI
- Toutes les tables d'une base, OUI

Toutes les tables de toutes les bases aussi, en faisant des jointures mais ça risque de devenir un foutoir. Il vaut mieux découper tout ça en plusieurs requêtes.

Tout se passe dans la base Master.
Pour SQLServer 2000, c'est encore dans des tables me semble t-il. A partir de SQLServer 2005, ces tables-là sont masquées et inaccessibles. Elles ont été remplacées par des vues qui renvoient les données, en lecture seule.

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
76
Ha, dans ce cas là j'ai moi aussi ratée la colonne permettant de faire la jointure entre sys.databases et sys.tables :-)

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
33
Exact, sys.tables est à lire dans chacune des bases et non pas dans la master.

Il doit être possible de faire une requete interbases mais ça complique grandement les choses

Je confirme donc, il vaut mieux découper tout ça en plusieurs requetes


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
6352
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
76
Dommage, j'aurais aimé avoir tord ^^ (ça pourrait être utile pour sortir quelques stats).
Je ne voyais pas de solution sans SQL dynamique (dans la limite du nombre de UNION combinables) et/ou structure de type WHILE ou CURSOR.


/*
coq
MVP Visual C#
CoqBlog
*/