SGBD

Compter le nombre de tables d’une base SQL Server

Une simple requête pour avoir le résultat

Les requêtes SQL permettent de faire presque tout sur une base de données. Que ce soit sur Microsoft SQL Server, Oracle Database, PostgreSQL, MariaDB, MySQL et bien d’autres, les requêtes permettent toujours d’arriver à ses fins mais il faut cependant connaitre les syntaxes, les variables, définir l’ordre des instructions… Même pour afficher un résultat aussi simple que de compte le nombre de tables dans une base de données SQL Server.

Pour calculer le nombre de tables dans une base de données Microsoft SQL Server, il faut interroger les vues du catalogue système. comme ceci.

SELECT 
COUNT(*) AS NombreDeTables
FROM 
sys.tables
WHERE 
is_ms_shipped = 0;

Explications sur cette requête

  • sys.tables est une vue de catalogue qui contient une ligne pour chaque table dans la base de données
  • COUNT(*) est la fonction d’agrégation qui compte le nombre de lignes (donc le nombre de tables)
  • is_ms_shipped = 0 :
    • is_ms_shipped est une colonne booléenne (0 ou 1) dans les vues de catalogue.
    • La valeur 0 signifie que la table est une table créée par l’utilisateur (non une table système fournie par Microsoft). Cela garantit que le compte se fait uniquement sur les tables de votre application et ne comprend pas les tables internes de SQL Server
  • AS NombreDeTables donne un nom clair à la colonne de résultat

Cette requête ne sera pas utile tous les jours mais elle servira néanmoins à vérifier l’intégrité d’une base, comparer deux BDD ou encore confirmer qu’un import se soit bien déroulé.

Publicité

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page