Existe-t-il un moyen d'afficher toutes les tables ayant un nombre spécifique d'enregistrements?Comment afficher toutes les tables ayant un nombre spécifique d'enregistrements
1
A
Répondre
1
Hmmm
façon rapide et sale:
sp_MSForeachtable 'select ''?'' tblName, count(*) from ? where count(*) = X'
Ceci devrait seulement produire ces lignes avec des enregistrements X
1
This post a une belle requête pour faire cela (ainsi que le nombre de colonnes et de la taille des lignes):
USE DatabaseName
GO
CREATE TABLE #temp (
table_name sysname ,
row_count INT,
reserved_size VARCHAR(50),
data_size VARCHAR(50),
index_size VARCHAR(50),
unused_size VARCHAR(50))
SET NOCOUNT ON
INSERT #temp
EXEC sp_msforeachtable 'sp_spaceused ''?'''
SELECT a.table_name,
a.row_count,
COUNT(*) AS col_count,
a.data_size
FROM #temp a
INNER JOIN information_schema.columns b
ON a.table_name collate database_default = b.table_name collate database_default
GROUP BY a.table_name, a.row_count, a.data_size
ORDER BY CAST(REPLACE(a.data_size, ' KB', '') AS integer) DESC
DROP TABLE #temp
2
Pour une précision de près de 100%:
select object_schema_name(object_id) as schema_name,
object_name(object_id) as object_name,
sum(p.rows)
from sys.partitions p
where index_id in (1,0)
group by object_id
having sum(p.rows) = @numberOfRows;
Pour une véritable précision de 100%, vous devez COUNT(*)
à partir d'un curseur
1
COUNT d'un curseur:
Declare @NumberOfRecords Integer
Set @NumberOfRecords = 100
Create Table #Tables(TableName SysName)
Declare @More Bit
Declare CTable Cursor Local Fast_Forward For Select Table_Name From Information_Schema.Tables Where Table_Type = 'Base Table'
Declare @CTableName SysName
Declare @SQL National Character Varying(4000)
Set @More = 1
Open CTable
While (@More = 1)
Begin
Fetch Next From CTable Into @CTableName
If (@@Fetch_Status != 0)
Set @More = 0
Else
Begin
Set @SQL = N'If (Select Count(*) From [' + @CTableName + ']) = ' + Cast(@NumberOfRecords As National Character Varying) + N' ' +
N'Insert Into #Tables(TableName) Values(''' + @CTableName + N''')'
Execute (@SQL)
End
End
Close CTable
Deallocate CTable
Select * From #Tables
Drop Table #Tables
Questions connexes
- 1. Comment afficher toutes les combinaisons?
- 2. Rechercher toutes les tables pour une sous-chaîne spécifique
- 3. Comment supprimer toutes les tables dans MySQL?
- 4. Je veux afficher toutes les tables qui ont un nom de colonne spécifié
- 5. Comment afficher un cookie spécifique?
- 6. Accéder à toutes les tables
- 7. sql server 2008 - trouver les tables contenant un texte spécifique
- 8. arrête toutes les règles htaccess pour un répertoire spécifique
- 9. Accorder la sélection à toutes les tables appartenant à un utilisateur spécifique
- 10. SQL: supprimer toutes les données de toutes les tables disponibles
- 11. Django: Comment obtenir toutes les tables et toutes les colonnes de cette table dans un projet?
- 12. Trouver tous les points ayant une valeur d'attribut spécifique
- 13. Afficher les tables par moteur MySQL
- 14. Afficher les chiffres dans un nombre entier
- 15. Wordpress - afficher un widget spécifique
- 16. Éléments avec un Div ayant un nom de classe spécifique
- 17. nombre sql() requête pour les tables
- 18. MySQL - Afficher toutes les permutations
- 19. Comment afficher un fond en mosaïque pour toutes les résolutions?
- 20. Comment afficher un UserControl avec satisfaire toutes les importations
- 21. Rechercher tous les champs dans toutes les tables pour une valeur spécifique (Oracle)
- 22. Rechercher dans toutes les tables Oracle DB
- 23. Comment obtenir un nombre d'éléments pour plusieurs tables
- 24. Comment afficher un nombre long dans les groupes?
- 25. Django PostgreSQL - Supprimer toutes les tables?
- 26. SQL pour afficher toutes les entrées dans un certain nombre de catégories
- 27. Dans SQL Server, comment identifier toutes les dépendances pour une table spécifique à l'aide de tables/vues système?
- 28. Créer une vue, afficher toutes les places non réservées
- 29. Toutes les tables jointes ont-elles des tables?
- 30. Comment créer un DB qui contient toutes mes tables (tables de ASPNETDB et mes autres tables)?
+1 Pour des commentaires de précision. Les méta-données sont rapides mais peuvent ne pas être correctes! – JNK