Y at-il un moyen dans SMSS de détecter si une table a des enregistrements? J'ai besoin d'avoir une liste de tables qui ont des enregistrements. Peut-être qu'il y a une déclaration SQL qui va faire l'affaire?SQL Server 2008: J'ai 1000 tables, j'ai besoin de savoir quelles tables ont des données
Répondre
Une syntaxe plus simple:
SELECT [Name] = o.name
, [RowCount] = SUM(p.row_count)
FROM SYS.DM_DB_PARTITION_STATS p
INNER JOIN
SYS.TABLES o
ON p.[object_ID] = o.[object_id]
WHERE index_id <= 1 -- Heap or clustered index only
GROUP BY o.name
ORDER BY 2 desc
Vous pouvez utiliser cette procédure stockée:
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
Cela renverra un pour chaque table de résultats dans la base de données (chacun indiquant le nom et le nombre de lignes, entre autres informations).
Voici comment vous pouvez les mettre dans une variable de table, et les commander par le nombre de lignes:
DECLARE @TBL TABLE (
[name] nvarchar(500),
[rows] bigint,
[reserved] nvarchar(500),
[data] nvarchar(500),
[index_size] nvarchar(500),
[unused] nvarchar(500)
)
INSERT INTO @TBL
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
SELECT * FROM @TBL
ORDER BY [rows] DESC
Essayez ceci - vous donne le nom de la table et la ligne compte:
SELECT
t.NAME AS TableName,
SUM(p.rows) AS [RowCount]
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
WHERE
i.index_id <= 1
GROUP BY
t.NAME, i.object_id, i.index_id, i.name
ORDER BY
SUM(p.rows) DESC
Affiche toutes les tables et leur nombre de lignes dans une seule sortie.
Comme votre question mentionne spécifiquement SSMS, vous pouvez également clic droit sur la base de données dans l'explorateur d'objets, puis dans le menu raccourci ne
Reports -> Standard Reports -> Disc Usage By Table
c'est super super utile –
Meilleure réponse. Merci! – DonP
- 1. SQL Comment savoir quelles tables ont une certaine colonne
- 2. Comment puis-je savoir quelles tables contiennent des données dans un fichier dans SQL Server?
- 3. Partitionnement de tables SQL Server 2008
- 4. Dois-je utiliser JAI?
- 5. Exécution de JAI dans OSGi
- 6. Problème de nom des tables SQL Server 2008
- 7. Modification des tables répliquées dans SQL Server 2008 R2
- 8. JAI Changer la résolution JPEG
- 9. Analyser une image avec JAI
- 10. SQL Server: Découvrez quels utilisateurs ont accès en écriture à quelles tables?
- 11. JAI ImageIO-core codecLib source
- 12. Insertion rapide des tables de données relationnelles (normalisées) dans la base de données SQL Server 2008
- 13. ORM pour base de données avec 1000+ tables
- 14. tables Liens dans SQL Server
- 15. Quelles sont les tables magiques disponibles dans SQL Server 2000?
- 16. sql server 2008 - trouver les tables contenant un texte spécifique
- 17. Synchronisation entre les tables SQL Server 2008 Express et VFP
- 18. SQL Server 2008 créer des tables, invisible dans SQL Server Management Studio
- 19. Localisation de données dans des tables SQL Server 2008 et tri
- 20. Toutes les tables jointes ont-elles des tables?
- 21. Comment savoir quelles tables temporaires sont actuellement dans la portée dans SQL Server?
- 22. Sql Server 2008 Liaison de tables inter-base de données (relations)
- 23. Mise à l'échelle des images avec Java JAI
- 24. Insertion de données dans des tables SQL
- 25. Supprimer des données des tables dépendantes
- 26. Comment déterminer quelles tables SQL ont une colonne d'identité par programme
- 27. Entreposage de données dans SQL Server 2008
- 28. SQL Server - Tables liées, éléments répétés
- 29. Tables temporaires et réplication SQL Server
- 30. Centralisation/abstraction des données SQL Server à partir de plusieurs tables/bases de données
Syntaxe incorrecte près du mot clé 'RowCount'. –
Comment peut-il être restreint à certaines DB? Si j'ai sur le même serveur SQL plus de bases de données avec les mêmes noms de table, le nombre de lignes sera ajouté ensemble. –
@OndraPeterka: non, ceci est toujours exécuté dans le contexte d'une ** base de données ** - et seules ces tables seront affichées. Cela ne ** montre ** pas toutes les tables de toutes les bases de données d'un serveur –