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.
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.