Blog > Janvier 2018
Lister les tables d'un base de données en comptant les lignes


Voici une petite requête qui utilise les tables systèmes pour lister les tables d'un base de données, en comptant les lignes et les colonnes :
SELECT 
	 T.[name]		AS 'Nom de la table'
	,T.[max_column_id_used]	AS 'Nombre de colonnes'
	,P.[row_count]		AS 'Nombre de lignes'
FROM sys.tables T
INNER JOIN sys.dm_db_partition_stats AS P ON P.[object_id] = T.[object_id]
WHERE P.[index_id] BETWEEN 0 AND 1
  AND T.[name] NOT IN ('dtproperties','sysdiagrams')
ORDER BY T.[name] ASC

Échappement des caractères underscore et pourcentage dans la clause LIKE


Dans SQL Server, la clause LIKE permet une recherche à partir d'une expression. Le caractère "_" est utilisé comme indiquant que l'on accepte n'importe quel caractère à la place du "_".
Par exemple :
SELECT * FROM MaTable WHERE MaColonne LIKE 'A_Z'
Cette requête permet de sélectionner tous les enregistrement où MaColonne commence par A, suivi de n'importe quel caractère, et ensuite Z. Donc si MaColonne = 'ABZ', il sera sélectionné, par contre si MaColonne = 'ABBZ', il ne sera pas sélectionné.

Pour échapper les caractères % et _ dans la clause LIKE, il faut les entourer de [ ]. Par exemple, 'T[_][%]A%' permettra de rechercher les chaînes commençant par 'T_%A'.