Quel est le problème ?
Lorsque vous écrivez des requêtes pour une base de données pour laquelle vous êtes peut-être nouveau ou qui change souvent, vous souhaiterez peut-être exécuter une vérification rapide pour trouver toutes les tables d'une base de données spécifique, ou les colonnes de la base de données, ou pour rechercher si une table ou une colonne existe.
Pourquoi est-ce un problème ?
Comprendre le schéma et les tables qu'il contient aide à écrire du SQL efficace et évite d'exécuter des requêtes plusieurs fois juste pour voir si le nom du schéma ou le nom de la colonne est correct.
Ce tutoriel vous aidera à résoudre ces problèmes.
Utilisation du schéma d'informations
Interroger les métadonnées sur une source de données est le moyen le plus simple de déterminer la composition d'une table si vous ne la comprenez pas déjà. Microsoft SQL Server fournit une vue de schéma d'informations parmi plusieurs méthodes permettant d'obtenir ces métadonnées. Comme l'indique leur documentation de support, « les vues de schéma d'informations fournissent une vue interne, indépendante de la table système, des métadonnées SQL Server. Les vues de schéma d'informations permettent aux applications de fonctionner correctement même si des modifications importantes ont été apportées aux tables système sous-jacentes. »
Nous utiliserons quelques-unes des vues du schéma d'informations afin d'exécuter des requêtes permettant de déterminer la composition des tables dans la source de données.
Pour afficher les TABLES
et COLUMNS
dans la base de données ou recherchez TABLES
et COLUMNS
.
Cette première requête renverra toutes les tables de la base de données que vous interrogez.
SELECT
TABLE_NAME
FROM
INFORMATION_SCHEMA.TABLES
La deuxième requête renverra une liste de toutes les colonnes et tables de la base de données que vous interrogez.
SELECT
TABLE_NAME,
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
Ou, vous pouvez également interroger uniquement les COLUMNS
à partir d'une table spécifique et renvoyer les noms de colonne de la table spécifique "Album" dans notre base de données.
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Album'
Avec cette requête suivante, vous pouvez savoir s'il existe ou non une TABLE
dans la source de données qui correspond à certains types de paramètres de recherche.
IF EXISTS(
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_NAME = 'Album'
)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;
La requête renverra le mot "trouvé" si la table "Album" existe dans notre base de données.
Maintenant, pour aller un peu plus loin, vous pouvez utiliser cette requête pour savoir s'il y a ou non une COLUMN
dans la source de données qui correspond à certains types de paramètres de recherche.
IF EXISTS(
SELECT
*
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME = 'Title'
)
SELECT 'found' AS search_result ELSE SELECT 'not found' AS search_result;
Utilisation du INFORMATION_SCHEMA
afficher dans votre source de données peut être un moyen fiable de déterminer le contenu de la source de données pendant que vous créez vos requêtes.
Pour plus d'informations sur les vues de schéma d'informations système Microsoft SQL Server, veuillez consulter leurs documents de support.