Comment obtenir le nombre de lignes de vues à partir d'une base de données?
Je suis en train de faire un affichage personnalisé qui m'a le nombre de lignes de toutes les tables et vues d'une base de données.
Obtenir le nombre de table est sacrément dans SQL Server
SELECT TABLE_SCHEMA,
TABLE_NAME = TABLES.TABLE_NAME,
RECORD_COUNT = MAX(SYSINDEXES.ROWS)
FROM SYS.SYSINDEXES "SYSINDEXES",
INFORMATION_SCHEMA.TABLES "TABLES"
WHERE TABLES.TABLE_NAME = OBJECT_NAME(SYSINDEXES.ID)
AND TABLES.TABLE_TYPE = 'BASE TABLE'
GROUP BY TABLES.TABLE_SCHEMA,
TABLES.TABLE_NAME
Maintenant, j'ai besoin d'obtenir le nombre de lignes pour les VUES
Je me sens le seul moyen est de compter le nombre de lignes de la vue
c'est à dire count(*) from view_name
Mais, je ne pouvais pas trouver un moyen d'avoir le nombre de lignes de vue avec view_name, table_schema et ainsi de suite.
Toute avance sur ce qui serait utile.
- Tu parles juste des vues indexées ou dans tous les points de vue?
- tous les points de vue .... @Martin Smith
SELECT COUNT(*) ...
est la seule façon-là.- Ouais c'est ce que j'ai ressenti , mais comment pourrais-je obtenir le NOM_TABLE|TABLE_ROWCOUNT le long de côté... se joindre à eux est hors de question.
- A supprimer ma solution, cela peut devenir laid...je l'avais poster une autre solution, mais il est assez hideux si je devrais le dire moi-même. Le jist de il est de créer une table temporaire de stocker les noms et boucle sur chaque nom et d'obtenir un SELECT COUNT(*) pour chaque vue. Il implique une certaine cryptique
EXEC
états, et, pour moi, n'est pas la meilleure solution. Comme fermat dit, ou proche de ce qu'il a dit, j'ai une solution élégante à ce problème-mais les marges sont trop petites pour s'adapter à vous montrer. Dans mon cas, c'est la même chose, cette solution est sale après :). - oui, la même qui est en écoute-moi 🙂 Merci tout de même ...
- Sql dynamique semble être la seule façon que vous allez accomplir, et oui, c'est assez moche.
Vous devez vous connecter pour publier un commentaire.
Bien, il n'est pas très joli, mais cela devrait faire l'affaire.
Cela s'applique à une base de données unique parce que je suis en utilisant le système d'affichage "all_views' pour obtenir les données. Je suis sûr que ça pourrait être adapté si vous voulait autre chose.
J'ai également limité les points de vue, je suis de retour compte pour, via le "schema_id'. Vous pouvez examiner cette question et de déterminer ce qui serait le mieux pour vous.
Enfin, je viens de cracher les résultats de sorte que vous pouvez les voir si vous exécutez ce code dans Management Studio. Vous auriez probablement souhaitez insérer les résultats dans un tableau ou quelque chose à la place. Si oui, c'est tout simplement une question de changement de la dynamique de la requête à partir d'une sélection d'un insert.
Donc, sans plus tarder:
Ici , la solution finale est:
Je sais que c'est un vieux post et je n'ai pas l'intention de prendre un crédit de l'marqué réponse mais je voulais ajouter.
J'ai ajouté le nom de la Vue pour vous aider à distinguer les chiffres plus.