Meilleur auteur de réponses
syntax SQL pour connaitre les tables d'une bdd

Question
-
Bonjour,
Je ne sais pas si c'est le bon forum pour ma question:
Je suis en train d'écrire un programme qui exporte les tables d'une bdd vers un fichier XML
J'aimerais savoir qu'elle est la syntaxe pour lister toutes les tables d'une bdd que l'utilisateur aura choisi?
en d'autres mots, comment faire un select all table name from bdd ?
fred
Réponses
-
SELECT * FROM MaBase.INFORMATION_SCHEMA.TABLE WHERE TABLE_TYPE = 'BSE TABLE'
A +
Frédéric Brouard, SQLpro - ARCHITECTE DE DONNÉES, http://sqlpro.developpez.com/
Expert bases de données relationnelles et langage SQL. MVP Microsoft SQL Server
www.sqlspot.com : modélisation, conseil, audit, optimisation, tuning, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *- Proposé comme réponse Papy Normand mardi 1 mars 2011 13:50
- Marqué comme réponse fred75 mercredi 2 mars 2011 16:57
Toutes les réponses
-
Bonjour,
Voir par exemple http://msdn.microsoft.com/fr-fr/library/ms254934.aspx qui donne une méthode valable quel que soit le fournisseur sous-jacent.
Si on utilise particulièrement SQL Server, il est possible d'utiliser directement les vues "Information_Schema" exposées par SQL Server (voir http://msdn.microsoft.com/fr-fr/library/ms186778.aspx) ce qui est sans doute ce qui fait in-fine la première méthode lorsque le fournisseur est SQL Server...
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered". -
Bonjour fred75,
Si vous voulez une instruction simple en T-SQL pour retrouver le nom des tables "utilisateurs" de la base de données à laquelle votre application est connectée :
select
'[' + SCHEMA_NAME(schema_id) + '].[' + name + ']' from sys.objects where type = 'U';
Pour la fameuse base AdventureWorks2008 de CodePlex, vous obtenez ( pour le 12 premières tables ) :
[Sales].[Store] [Production].[ProductPhoto] [Production].[ProductProductPhoto] [Sales].[StoreContact] [Person].[Address] [Production].[ProductReview] [Production].[TransactionHistory] [Person].[AddressType] [Production].[ProductSubcategory] [dbo].[AWBuildVersion] [Production].[TransactionHistoryArchive] [Purchasing].[ProductVendor]
Bonne journée
Mark Post as helpful if it provides any help.Otherwise,leave it as it is.- Modifié Papy Normand dimanche 27 février 2011 23:07 CodePlex au lieu de Codelex
-
SELECT * FROM MaBase.INFORMATION_SCHEMA.TABLE WHERE TABLE_TYPE = 'BSE TABLE'
A +
Frédéric Brouard, SQLpro - ARCHITECTE DE DONNÉES, http://sqlpro.developpez.com/
Expert bases de données relationnelles et langage SQL. MVP Microsoft SQL Server
www.sqlspot.com : modélisation, conseil, audit, optimisation, tuning, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *- Proposé comme réponse Papy Normand mardi 1 mars 2011 13:50
- Marqué comme réponse fred75 mercredi 2 mars 2011 16:57
-
Bonjour,
Fred75, si ces informations vous ont été utiles, je vous remercie de marquer la réponse.
Cordialement,
Alex
________________
Astuces pour Visual Studio 2010
XNA – Développement jeux vidéo
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.
-
Bonjour SQLpro,
Merci pour ce post. Bien que je continuerai à utiliser SMO ou les vues système, je vais étudier INFORMATION_SCHEMA.
Bonne journée
PS : TABLE_TYPE = 'BASE TABLE' au lieu de 'BSE TABLE' ( si un modérateur peut supprimer cette ligne après correction de l'oubli du A, merci d'avance )
Mark Post as helpful if it provides any help.Otherwise,leave it as it is. -
Pour avoir une vue plus détaillée sur les tables, tu peux aller faire un tour sur : http://www.xoowiki.com/Article/SQL-Server/script-global-tables-174.aspx
-