107 votes

Obtenir la liste des tables et des champs de chacune dans une base de données

Je cherche à créer un ORM de base (juste pour le plaisir) et je me demandais s'il y avait un moyen de retourner la liste des tables dans une base de données et aussi les champs pour chaque table?

En utilisant ceci, je veux pouvoir boucler à travers le jeu de résultats (en C#) et ensuite dire pour chaque table dans le jeu de résultats, faire ceci (par exemple utiliser la réflexion pour créer une classe qui fera ou contiendra xyz).

En plus de cela, quels sont quelques bons blogs en ligne pour SQL Server? Je sais que cette question concerne vraiment l'utilisation des SP système et des bases de données dans SQL Server, et je suis d'accord avec les requêtes générales, donc je suis intéressé par des blogs qui couvrent ce type de fonctionnalités.

Merci

194voto

MarlonRibunal Points 1732

Est-ce que c'est ce que vous cherchez :

Utilisation des VUES DE CATALOGUE D'OBJETS

 SELECT T.name AS Nom_Table ,
       C.name AS Nom_Colonne ,
       P.name AS Type_de_Données ,
       C.max_length AS Taille ,
       CAST(P.precision AS VARCHAR) + '/' + CAST(P.scale AS VARCHAR) AS Précision_Echelle
FROM   sys.objects AS T
       JOIN sys.columns AS C ON T.object_id = C.object_id
       JOIN sys.types AS P ON C.system_type_id = P.system_type_id
WHERE  T.type_desc = 'USER_TABLE';

Utilisation des VUES DU SCHEMA D'INFORMATION

  SELECT TABLE_SCHEMA ,
       TABLE_NAME ,
       COLUMN_NAME ,
       ORDINAL_POSITION ,
       COLUMN_DEFAULT ,
       DATA_TYPE ,
       CHARACTER_MAXIMUM_LENGTH ,
       NUMERIC_PRECISION ,
       NUMERIC_PRECISION_RADIX ,
       NUMERIC_SCALE ,
       DATETIME_PRECISION
FROM   INFORMATION_SCHEMA.COLUMNS;

Référence : Mon Blog - http://dbalink.wordpress.com/2008/10/24/querying-the-object-catalog-and-information-schema-views/

43voto

ZombieSheep Points 18967

Tableaux ::

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='TABLE DE BASE'

colonnes ::

SELECT * FROM INFORMATION_SCHEMA.COLUMNS 

ou

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='nom_de_votre_table'

16voto

ShelS Points 41

Obtenir la liste de toutes les tables et des champs dans la base de données :

Select *
From INFORMATION_SCHEMA.COLUMNS
Where TABLE_CATALOG Like 'NomDeLaBaseDeDonnees'

Obtenir la liste de tous les champs dans une table :

Select *
From INFORMATION_SCHEMA.COLUMNS
Where TABLE_CATALOG Like 'NomDeLaBaseDeDonnees' And TABLE_NAME Like 'NomDeLaTable'

10voto

Jie Points 236

J'ai testé quelques solutions et trouvé que

Sélectionnez *
De INFORMATION_SCHEMA.COLUMNS

vous donne les informations sur les colonnes de votre base de données actuelle / par défaut.

Sélectionnez *
De .INFORMATION_SCHEMA.COLUMNS

, sans les < et >, vous donne les informations sur les colonnes de la base de données DBNAME.

8voto

JeremyDWill Points 2181
SÉLECTIONNER * DE INFORMATION_SCHEMA.COLUMNS

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X