Nb lignes par table

Contenu du snippet

Ce code m'avait servi il y a un an pour "mesurer" une base de données en renvoyant pour chaque table le nombre de lignes. Cela permet de parler volumétrie avec des néophytes. En fait ce code génère un script qu'il faut éxécuter.

Je le mets pour l'utilisation du curseur notemment.

Source / Exemple :


-- Curseur pour le nom des tables
Declare	@sNomTable	nVarChar (150)
--Declare	@iNbLignes 	Int
Declare	curNomTable 	Cursor For
	Select	sysobjects.name
	From 	dbo.sysobjects sysobjects
	Where 	xtype = 'U'

-- Ouverture du curseur sur la première table.
Open	curNomTable
Fetch 	Next From curNomTable
Into	@sNomTable

-- Boucle sur les tables
While	@@FETCH_STATUS = 0
Begin
	-- on affiche un Select pour chaque base, il faudra ensuite éxécuter le résultat.
	Print 	('
		Select	''' + @sNomTable + ''' As NomTable, Count (*) As NbLignes
		From	[' + LTrim (RTrim (@sNomTable)) +']
		')

	-- table suivante
	Fetch Next From curNomTable
	Into	@sNomTable

	-- union ou order by selon que c'est la derniere ligne ou non.
	If	@@FETCH_STATUS <> 0
		Print ('		Order By NbLignes Desc')
	Else	Print ('		Union')
	Print ('')
End

	
-- Fermeture du curseur
Close 	curNomTable
Deallocate curNomTable

Conclusion :


ATTENTION: CE CODE GENERE UN SCRIPT QU'IL FAUT EXECUTER!

copiez le code dans un " analiseur de requetes", éxécutez le (F5), récupérez le résultat en le copiant dans une nouvelle fenêtre et éxécutez.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.