Представления информационной схемы (Transact-SQL)
Представление информационной схемы является одним из способов получения метаданных, которые предоставляет SQL Server.
Важно! |
---|
В представления информационной схемы были внесены определенные изменения, нарушающие обратную совместимость. Эти изменения описаны в разделах, посвященных конкретным представлениям. |
Примечание |
---|
Представления информационной схемы обеспечивают внутренний, системный, не зависящий от таблиц обзор метаданных SQL Server. Представления информационной схемы позволяют приложениям правильно работать, несмотря на значительные изменения, внесенные в базовые системные таблицы. Представления информационной схемы, включенные в SQL Server, соответствуют стандартному определению ISO для INFORMATION_SCHEMA. |
SQL Server поддерживает соглашения по трехкомпонентному именованию при ссылках на текущий сервер. Стандарт ISO также поддерживает соглашения по трехкомпонентному именованию. Однако имена, которые используются в обоих соглашениях, различаются. Представления информационной схемы определяются в специальной схеме с именем INFORMATION_SCHEMA. Эта схема содержится в любой базе данных. Каждое представление информационной схемы содержит метаданные для всех объектов, хранящихся в этой конкретной базе данных. В следующей таблице представлены связи между именами SQL Server и стандартными именами SQL.
Имя SQL Server |
Соответствует эквивалентному стандартному имени SQL |
---|---|
База данных |
Каталог |
Схема |
Схема |
Объект |
Объект |
Определяемый пользователем тип данных (псевдоним) |
Домен |
Настоящее соглашение по соответствию имен применяется к следующим представлениям SQL Server, совместимым со стандартом ISO.
Некоторые представления содержат ссылки на различные классы данных, например символьные данные или двоичные данные.
Как показано в следующем примере, при ссылке на представления информационной схемы необходимо использовать полное имя, включающее имя схемы 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;
См. также