Existe-t-il un moyen rapide de signaler les métadonnées de la base de données dans SQL Server 2005?

StackOverflow https://stackoverflow.com/questions/454986

Question

Existe-t-il des procédures système stockées pour signaler les statistiques et les métadonnées d'une base de données dans SQL Server 2005?

Ce dont j'ai besoin, c'est d'un moyen rapide de générer une liste de tableaux, la taille de chaque tableau, le nombre de lignes dans chaque tableau, etc. Des procédures stockées pour des tables individuelles et des métadonnées seraient également utiles.

Conseils appréciés.

Était-ce utile?

La solution

Oui, les tables de dictionnaire de données vous permettront de le faire. Les tables principales du dictionnaire de données sont sys.objects , sys.columns , sys.indexes , sys.foreign_keys et sys.sql_modules . Pour obtenir un exemple d'une variété de requêtes qui utilisent le dictionnaire de données système pour procéder au reverse engineering d'une base de données en script SQL, consultez la section cette publication stackoverflow.

Il est un peu plus compliqué d'utiliser du dictionnaire de données, mais sp_spaceused le fera pour une seule table. Vous pouvez envelopper cela avec sp_msforeachtable pour effectuer une itération sur une ensemble de tables et obtenez le rapport pour toutes les tables.

Autres conseils

Examinez les vues système, en particulier information_schema.tables. Ces proc obtiendront également une grande partie des données que vous recherchez.

sp_helpdb dbname
sp_help objectname
sp_spaceused tablename

Au lieu d'interroger directement les tables sysobjects etc ..., vous pouvez utiliser la vue INFORMATION_SCHEMA .

En fait, sysobjects était une table dans SQL SErver2000 , mais dans SQL 2005 , elle était implémentée sous la forme d'une vue . , et il est conservé pour préserver la compatibilité avec les versions antérieures.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top