Vues de schémas d'informations (Transact-SQL)

Une vue de schémas d'informations est l'une des diverses méthodes que fournit SQL Server pour l'obtention de métadonnées.

Important

Les vues de schémas d'informations ont fait l'objet de certaines modifications qui rompent la compatibilité descendante. Ces modifications sont décrites dans les rubriques spécifiques à chaque vue.

[!REMARQUE]

Les vues de schémas d'informations fournissent une vue interne indépendante des tables système des métadonnées SQL Server. Elles permettent aux applications de fonctionner correctement bien que des changements importants aient été apportés aux tables système sous-jacentes. Les vues de schémas d'informations incluses dans SQL Server sont conformes à la norme ISO pour INFORMATION_SCHEMA.

SQL Server prend en charge une convention de dénomination en trois parties pour les références au serveur actif. La norme ISO prend également en charge la convention des noms en trois parties. Cependant, les noms utilisés dans les deux conventions sont différents. Les vues de schémas d'informations sont définies dans un schéma spécial appelé INFORMATION_SCHEMA. Ce schéma figure dans chaque base de données. Chaque vue de schémas d'informations comprend des métadonnées pour tous les objets de données stockés dans une base de données particulière. Le tableau suivant décrit la relation entre les noms SQL Server et les noms standard SQL.

Nom SQL Server

Nom standard SQL équivalent

Base de données

Catalogue

Schéma

Schéma

Objet

Objet

Le type de données défini par l'utilisateur (alias).

Domaine

Cette convention de mappage de noms s'applique aux vues compatibles SQL Server ISO suivantes.

Certaines vues comprennent des références à d'autres classes de données telles que les données de type caractère ou binaire.

Comme l'indique l'exemple suivant, lorsque vous faites référence aux vues de schémas d'informations, vous devez utiliser un nom qualifié qui inclut le nom de schéma INFORMATION_SCHEMA.

USE AdventureWorks;
GO

SELECT ccu.TABLE_SCHEMA, ccu.TABLE_NAME, ccu.COLUMN_NAME, cc.CONSTRAINT_SCHEMA, cc.CONSTRAINT_NAME, cc.CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS AS cc
INNER JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE AS ccu
    ON cc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME;