Liste les bases et tables sur sqlser 200

Messages postés
105
Date d'inscription
mardi 13 janvier 2004
Statut
Membre
Dernière intervention
18 mai 2019
- - Dernière réponse : cs_coq
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
- 29 juil. 2010 à 21:38
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
Afficher la suite 

5 réponses

Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
65
0
Merci
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
*/
Commenter la réponse de cs_coq
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
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
Commenter la réponse de cs_casy
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
65
0
Merci
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
*/
Commenter la réponse de cs_coq
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
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
Commenter la réponse de cs_casy
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
65
0
Merci
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
*/
Commenter la réponse de cs_coq