Partilhar via


exibições do esquema de informações (Transact-SQL)

Uma exibição de esquema de informações é um dos vários métodos SQL Server fornecidos para obtenção de metadados.

Observação importanteImportante

Algumas alterações feitas nas exibições do esquema de informações quebram a compatibilidade com versões anteriores. Essas alterações são descritas nos tópicos das exibições específicas.

ObservaçãoObservação

As exibições de esquema de informações fornecem uma exibição interna independente da tabela do sistema dos metadados SQL Server. Exibições de esquema de informações permitem que os aplicativos trabalhem corretamente embora alterações significativas tenham sido feitas nas tabelas do sistema subjacentes. As exibições de esquema de informações incluídas em SQL Server estão em conformidade com a definição padrão ISO para o INFORMATION_SCHEMA.

SQL Server oferece suporte a uma convenção de nomenclatura de três partes quando você faz uma referência ao servidor atual. O padrão ISO também oferece suporte a uma convenção de nomenclatura de três partes. Entretanto, os nomes usados em ambas as convenções de nomenclatura são diferentes. As exibições de esquema de informações são definidas em um esquema especial chamado INFORMATION_SCHEMA. Esse esquema está contido em cada banco de dados. Cada exibição de esquema de informações contém metadados para todos os objetos de dados armazenados naquele banco de dados específico. A tabela a seguir mostra as relações entre os nomes SQL Server e os nomes SQL padrão.

Nome do SQL Server

Mapeia para seu nome SQL padrão equivalente

Banco de dados

Catálogo

Esquema

Esquema

Objeto

Objeto

tipo de dados definido pelo usuário (alias)

Domínio

Esta convenção de mapeamento de nome se aplica às seguintes exibições do SQL Server compatíveis com ISO.

Algumas exibições contêm referências a classes de dados diferentes, como dados de caracteres ou dados binários.

Como mostra o exemplo a seguir, ao referenciar as exibições de esquema de informações, você deve usar um nome qualificado que inclua o nome de esquema 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;