selon la version de SQL Server que vous exécutez, la méthode d’interrogation et de renvoi d’une liste de toutes les tables créées par l’utilisateur peut différer légèrement. Ci-dessous, nous examinerons brièvement les instructions TSQL qui peuvent être utilisées pour récupérer une liste de tables pour L’ancienne version de SQL Server 2000 et la version plus récente de 2005 ou au-delà.,

liste des Tables dans SQL Server 2000

pour les anciennes versions de SQL Server (telles que SQL Server 2000, bien que cette méthode soit également prise en charge dans SQL Server 2005 pour une compatibilité ascendante), vous devrez interroger la vue de métadonnéesSYS.SYSOBJECTS. SYS.SYSOBJECTS contient une ligne pour chaque objet créé dans la base de données, y compris stored procedures, views et user tables (qui sont importants à distinguer de system tables.,)

la tableSYSOBJECTS abrite quelques dizaines de colonnes de données car elle doit contenir des informations sur pratiquement tout ce qui a été ajouté au serveur au fil du temps. Par conséquent, pour trouver une liste de tables créées par l’utilisateur (ignorant ainsi system tables), nous devrons trouver des résultats où la colonne xtype (qui spécifie le object type pour cette ligne) est égale à la valeur U, qui signifie user table., L’instruction TSQL résultante devrait ressembler à ceci:

SELECT *FROM SYSOBJECTSWHERE xtype = 'U';GO

Remarque: puisque SYSOBJECTS font partie de l’espace de noms SYS, lors de l’interrogation de SYSOBJECTS il n’est pas nécessaire de spécifier que SYSOBJECTS fait partie de l’espace de noms global SYS, nous pouvons donc l’omettre comme indiqué dans l’exemple ci-dessus.

cela renverra une liste de résultats de toutes les tables créées par l’utilisateur., Étant donné que la quantité d’informations renvoyées lors de l’interrogation de toutes les colonnes est assez importante, vous souhaiterez peut-être rogner les résultats en affichant uniquement la colonne name et peut-être la crdate (date de création):

SELECT name, crdateFROM SYSOBJECTSWHERE xtype = 'U';GO

lister les tables dans SQL Server 2005 ou plus récent

lister toutes les tables dans SQL Server lors de l’utilisation d’une version plus récente (SQL 2005 ou supérieure) consiste à interroger les vues INFORMATION_SCHEMA qui sont automatiquement intégrées dans SQL Server., Ceux-ci vous permettent d’afficher facilement une grande variété de métadonnées pour cette instance de SQL Server, y compris des informations sur le COLUMNS, ROUTINES et même TABLES.

vous remarquerez peut-être que quatre colonnes sont renvoyées lors de l’utilisation de la vue INFORMATION_SCHEMA.TABLES, mais la colonne la plus importante est TABLE_TYPE, qui détermine si la table de cette ligne est une table réelle (BASE TABLE) ou une 10e2120a65″>

).,

Pour retourner toutes les tables et vues en une seule requête, exécuter l’instruction TSQL suivante:

SELECT *FROM INFORMATION_SCHEMA.TABLES;GO

Il peut également être judicieux de préciser la base de données que vous souhaitez interroger:

SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLES;GO

Si vous souhaitez uniquement extraire les tables réelles et filtrer les vues des résultats, ajouter une balise WHERE TABLE_TYPE = 'BASE TABLE' l’article:

SELECT *FROM databaseName.INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE = 'BASE TABLE';GO