SqlServer: Comment get des méta-données sur les tables et leurs relations?

Je me demandais s'il y avait un moyen (relativement simple j'espère) d'get des informations sur la table et ses attributes et réalités?

Clarification: Je veux saisir toutes les tables dans la database et get le méta-model pour toute la database, les tables, datatables de colonnes, les indices, les contraintes uniques, les relations entre les tables, etc.

Le système possède un dictionary de données dans sys.tables, sys.columns, sys.indexes et diverses autres tables. Vous pouvez interroger ces tables pour get des métadonnées sur la structure de la database. Cet article contient un script que j'ai écrit il y a quelques années pour désosser un schéma de database. Si vous y jetez un coup d'œil, vous pouvez voir quelques exemples d'utilisation des tables du dictionary de données système.

Il y a tout un tas de vues système dans le schéma information_schema dans sql server 2005+. Y at-il quelque chose en particulier que vous voulez?

Certaines de ces vues incluent: check_contraints, colonnes, tables, vues

Essayez sp_help <tablename> . Cela vous montrera les réfractions de key étrangère et datatables sur les colonnes, etc., c'est-à-dire si vous êtes intéressé par une table spécifique, comme votre question semblait l'indiquer.

Si l'utilisation du code .NET est une option SMO est la meilleure façon de le faire.

Il fait abstraction de toutes ces vues et tables du système, les cachant derrière des classs et des collections agréables et faciles à utiliser. http://msdn.microsoft.com/en-us/library/ms162169.aspx

C'est la même infrastructure que SQL Server Management Studio utilise elle-même. Il prend même en charge les scripts.

L'abstraction a un coût mais vous avez besoin de performances maximales, vous devez toujours utiliser les vues système et le code SQL personnalisé.

Vous pouvez essayer d'utiliser cette bibliothèque db-meta