Коллекции схемы SQL Server

Поставщик данных Microsoft .NET Framework для SQL Server поддерживает дополнительные коллекции схем помимо общих коллекций. Коллекции схем незначительно меняются в зависимости от используемой версии SQL Server. Чтобы получить список поддерживаемых коллекций схем, вызовите метод GetSchema без аргументов или укажите имя коллекции схем "MetaDataCollections". При этом будет возвращена DataTable со списком поддерживаемых коллекций схем, число ограничений, которые каждая из них поддерживает, и число идентификационных частей, которые в них используются.

Базы данных

ColumnName Тип данных Description
database_name Строка Имя базы данных .
dbid Int16 Идентификатор базы данных.
create_date Дата/время Дата создания базы данных.

Внешние ключи

ColumnName Тип данных Description
CONSTRAINT_CATALOG Строка Каталог, к которому принадлежит ограничение.
CONSTRAINT_SCHEMA Строка Схема, которая содержит ограничение.
CONSTRAINT_NAME Строка Имя.
TABLE_CATALOG Строка Имя таблицы, частью которой является ограничение.
TABLE_SCHEMA Строка Схема, которая содержит таблицу.
TABLE_NAME Строка Имя таблицы
CONSTRAINT_TYPE Строка Тип ограничения. Допускается только ограничение «FOREIGN KEY».
IS_DEFERRABLE Строка Указывает, является ли ограничение допускающим задержку. Возвращает NO.
INITIALLY_DEFERRED Строка Указывает, является ли ограничение первоначально допускающим задержку. Возвращает NO.

Индексы

ColumnName Тип данных Description
constraint_catalog Строка Каталог, которому принадлежит индекс.
constraint_schema Строка Схема, которая содержит индекс.
constraint_name Строка Имя индекса.
table_catalog Строка Имя таблицы, с которой связан индекс.
table_schema Строка Схема, содержащая таблицу, с которой связан индекс.
table_name Строка Имя таблицы.
index_name Строка Имя индекса.

Indexes (SQL Server 2008)

Начиная с .NET Framework 3.5 с пакетом обновления 1 (SP1) и SQL Server 2008, в коллекцию схем Indexes для поддержки новых пространственных типов, файловых потоков и разреженных столбцов были добавлены указанные ниже столбцы. Эти столбцы не поддерживаются в предыдущих версиях .NET Framework и SQL Server.

ColumnName Тип данных Description
type_desc Строка Индекс имеет один из указанных ниже типов.

- HEAP
- CLUSTERED
- NONCLUSTERED
- XML
- SPATIAL

IndexColumns

ColumnName Тип данных Description
constraint_catalog Строка Каталог, которому принадлежит индекс.
constraint_schema Строка Схема, которая содержит индекс.
constraint_name Строка Имя индекса.
table_catalog Строка Имя таблицы, с которой связан индекс.
table_schema Строка Схема, содержащая таблицу, с которой связан индекс.
table_name Строка Имя таблицы.
column_name Строка Имя таблицы, с которой связан индекс.
ordinal_position Int32 Порядковая позиция столбца.
KeyType Байт Тип объекта.
index_name Строка Имя индекса.

Процедуры

ColumnName Тип данных Description
SPECIFIC_CATALOG Строка Собственное имя для каталога.
SPECIFIC_SCHEMA Строка Определенное имя схемы.
SPECIFIC_NAME Строка Определенное имя каталога.
ROUTINE_CATALOG Строка Каталог, которому принадлежит хранимая процедура.
ROUTINE_SCHEMA Строка Схема, которая содержит хранимую процедуру.
ROUTINE_NAME Строка Имя хранимой процедуры.
ROUTINE_TYPE Строка Возвращает значение PROCEDURE для хранимых процедур и FUNCTION для функций.
СОЗДАНО Дата/время Время создания процедуры.
LAST_ALTERED Дата/время Время последнего изменения процедуры.

Параметры процедуры

ColumnName Тип данных Description
SPECIFIC_CATALOG Строка Имя каталога процедуры, для которой это является параметром.
SPECIFIC_SCHEMA Строка Схема, содержащая процедуру, частью которой является этот параметр.
SPECIFIC_NAME Строка Имя процедуры, частью которой является этот параметр.
ORDINAL_POSITION Int32 Порядковый номер параметра, начиная с 1. Для возвращаемого значения процедуры - 0.
PARAMETER_MODE Строка Возвращает значение IN для входного параметра, OUT для выходного параметра и INOUT для изменяемого входного параметра.
IS_RESULT Строка Возвращает значение YES, если результат процедуры является результатом выполнения функции. В противном случае возвращается значение NO.
AS_LOCATOR Строка Возвращает значение YES, если результат объявлен как указатель. В противном случае возвращается значение NO.
PARAMETER_NAME Строка Имя параметра. Если соответствует результату выполнения функции, то возвращается значение NULL.
DATA_TYPE Строка Тип данных, поддерживаемый системой.
CHARACTER_MAXIMUM_LENGTH Int32 Максимальная длина в символах для двоичных или символьных данных. В противном случае возвращается значение NULL.
CHARACTER_OCTET_LENGTH Int32 Максимальная длина в байтах для двоичных или символьных данных. В противном случае возвращается значение NULL.
COLLATION_CATALOG Строка Имя каталога параметров сортировки параметра. Если введенные данные не принадлежат ни к одному из символьных типов, возвращает значение NULL.
COLLATION_SCHEMA Строка Всегда возвращает значение NULL.
COLLATION_NAME Строка Имя параметров сортировки параметра. Если введенные данные не принадлежат ни к одному из символьных типов, возвращает значение NULL.
CHARACTER_SET_CATALOG Строка Имя каталога кодировки параметра. Если введенные данные не принадлежат ни к одному из символьных типов, возвращает значение NULL.
CHARACTER_SET_SCHEMA Строка Всегда возвращает значение NULL.
CHARACTER_SET_NAME Строка Имя кодировки параметра. Если введенные данные не принадлежат ни к одному из символьных типов, возвращает значение NULL.
NUMERIC_PRECISION Байт Точность приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. В противном случае возвращается значение NULL.
NUMERIC_PRECISION_RADIX Int16 Основание системы счисления точности приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. В противном случае возвращается значение NULL.
NUMERIC_SCALE Int32 Масштаб приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. В противном случае возвращается значение NULL.
DATETIME_PRECISION Int16 Точность в долях секунды, если параметр имеет тип datetime или smalldatetime. В противном случае возвращается значение NULL.
INTERVAL_TYPE Строка NULL. Зарезервировано для будущего использования в SQL Server.
INTERVAL_PRECISION Int16 NULL. Зарезервировано для будущего использования в SQL Server.

Таблицы

ColumnName Тип данных Description
TABLE_CATALOG Строка Каталог таблицы.
TABLE_SCHEMA Строка Схема, которая содержит таблицу.
TABLE_NAME Строка Имя таблицы.
TABLE_TYPE Строка Тип таблицы. Может быть VIEW или BASE TABLE.

Столбцы

ColumnName Тип данных Description
TABLE_CATALOG Строка Каталог таблицы.
TABLE_SCHEMA Строка Схема, которая содержит таблицу.
TABLE_NAME Строка Имя таблицы.
COLUMN_NAME Строка Имя столбца.
ORDINAL_POSITION Int32 Идентификационный номер столбца.
COLUMN_DEFAULT Строка Значение столбца по умолчанию.
IS_NULLABLE Строка Указывает, может ли столбец допускать значение NULL. Если для столбца допустимо значение NULL, этот столбец возвращает значение YES. Иначе возвращается значение NO.
DATA_TYPE Строка Тип данных, поддерживаемый системой.
CHARACTER_MAXIMUM_LENGTH Int32 – Sql8, Int16 – Sql7 Максимальная длина в символах для двоичных данных, символьных данных или текстовых данных и изображений. Иначе возвращается значение NULL.
CHARACTER_OCTET_LENGTH Int32 – SQL8, Int16 – Sql7 Максимальная длина в байтах для двоичных данных, символьных данных или текстовых данных и изображений. Иначе возвращается значение NULL.
NUMERIC_PRECISION Unsigned Byte Точность приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
NUMERIC_PRECISION_RADIX Int16 Основание системы счисления точности приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
NUMERIC_SCALE Int32 Масштаб приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
DATETIME_PRECISION Int16 Код подтипа для datetime и интервальных типов данных SQL-92. Для других типов данных возвращается значение NULL.
CHARACTER_SET_CATALOG Строка Возвращает значение «master», т. е. имя базы данных, в которой находится кодировка, если столбец имеет символьный тип данных или текстовый тип данных. Иначе возвращается значение NULL.
CHARACTER_SET_SCHEMA Строка Всегда возвращает значение NULL.
CHARACTER_SET_NAME Строка Возвращает уникальное имя для кодировки, если столбец содержит символьные данные или текстовые данные. Иначе возвращается значение NULL.
COLLATION_CATALOG Строка Возвращает значение "master", т.е. имя базы данных, в которой определен параметр сортировки, если столбец имеет символьный тип данных или текстовый тип данных. В противном случае этот столбец содержит значение NULL.

Columns (SQL Server 2008)

Начиная с .NET Framework 3.5 с пакетом обновления 1 (SP1) и SQL Server 2008, в коллекцию схем Columns для поддержки новых пространственных типов, файловых потоков и разреженных столбцов были добавлены указанные ниже столбцы. Эти столбцы не поддерживаются в предыдущих версиях .NET Framework и SQL Server.

ColumnName Тип данных Description
IS_FILESTREAM Строка YES, если для столбца установлен атрибут FILESTREAM.

NO, если для столбца не установлен атрибут FILESTREAM.
IS_SPARSE Строка YES, если столбец является разреженным.

NO, если столбец не является разреженным.
IS_COLUMN_SET Строка YES, если столбец является набором столбцов.

NO, если столбец не является набором столбцов.

AllColumns (SQL Server 2008)

Начиная с .NET Framework 3.5 с пакетом обновления 1 (SP1) и SQL Server 2008, для поддержки разреженных столбцов была добавлена коллекция схем AllColumns. Коллекция схем AllColumns не поддерживается в предыдущих версиях .NET Framework и SQL Server.

Для коллекции схем AllColumns установлены те же ограничения и результирующая схема DataTable, что и для коллекции схем Columns. Единственное отличие заключается в том, что коллекция схем AllColumns включает столбцы, представляющие наборы столбцов, которые не входят в коллекцию схем Columns. Эти столбцы описаны в приведенной ниже таблице.

ColumnName Тип данных Description
TABLE_CATALOG Строка Каталог таблицы.
TABLE_SCHEMA Строка Схема, которая содержит таблицу.
TABLE_NAME Строка Имя таблицы.
COLUMN_NAME Строка Имя столбца.
ORDINAL_POSITION Int32 Идентификационный номер столбца.
COLUMN_DEFAULT Строка Значение столбца по умолчанию.
IS_NULLABLE Строка Указывает, может ли столбец допускать значение NULL. Если для столбца допустимо значение NULL, этот столбец возвращает значение YES. Иначе возвращается значение NO.
DATA_TYPE Строка Тип данных, поддерживаемый системой.
CHARACTER_MAXIMUM_LENGTH Int32 Максимальная длина в символах для двоичных данных, символьных данных или текстовых данных и изображений. Иначе возвращается значение NULL.
CHARACTER_OCTET_LENGTH Int32 Максимальная длина в байтах для двоичных данных, символьных данных или текстовых данных и изображений. Иначе возвращается значение NULL.
NUMERIC_PRECISION Unsigned Byte Точность приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
NUMERIC_PRECISION_RADIX Int16 Основание системы счисления точности приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
NUMERIC_SCALE Int32 Масштаб приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
DATETIME_PRECISION Int16 Код подтипа для datetime и интервальных типов данных SQL-92. Для других типов данных возвращается значение NULL.
CHARACTER_SET_CATALOG Строка Возвращает значение «master», т. е. имя базы данных, в которой находится кодировка, если столбец имеет символьный тип данных или текстовый тип данных. Иначе возвращается значение NULL.
CHARACTER_SET_SCHEMA Строка Всегда возвращает значение NULL.
CHARACTER_SET_NAME Строка Возвращает уникальное имя для кодировки, если столбец содержит символьные данные или текстовые данные. Иначе возвращается значение NULL.
COLLATION_CATALOG Строка Возвращает значение "master", т.е. имя базы данных, в которой определен параметр сортировки, если столбец имеет символьный тип данных или текстовый тип данных. В противном случае этот столбец содержит значение NULL.
IS_FILESTREAM Строка YES, если для столбца установлен атрибут FILESTREAM.

NO, если для столбца не установлен атрибут FILESTREAM.
IS_SPARSE Строка YES, если столбец является разреженным.

NO, если столбец не является разреженным.
IS_COLUMN_SET Строка YES, если столбец является набором столбцов.

NO, если столбец не является набором столбцов.

ColumnSetColumns (SQL Server 2008)

Начиная с .NET Framework 3.5 с пакетом обновления 1 (SP1) и SQL Server 2008, для поддержки разреженных столбцов была добавлена коллекция схем ColumnSetColumns. Коллекция схем ColumnSetColumns не поддерживается в предыдущих версиях .NET Framework и SQL Server. Коллекция схем ColumnSetColumns возвращает схему для всех столбцов в наборе столбцов. Эти столбцы описаны в приведенной ниже таблице.

ColumnName Тип данных Description
TABLE_CATALOG Строка Каталог таблицы.
TABLE_SCHEMA Строка Схема, которая содержит таблицу.
TABLE_NAME Строка Имя таблицы.
COLUMN_NAME Строка Имя столбца.
ORDINAL_POSITION Int32 Идентификационный номер столбца.
COLUMN_DEFAULT Строка Значение столбца по умолчанию.
IS_NULLABLE Строка Указывает, может ли столбец допускать значение NULL. Если для столбца допустимо значение NULL, этот столбец возвращает значение YES. Иначе возвращается значение NO.
DATA_TYPE Строка Тип данных, поддерживаемый системой.
CHARACTER_MAXIMUM_LENGTH Int32 Максимальная длина в символах для двоичных данных, символьных данных или текстовых данных и изображений. Иначе возвращается значение NULL.
CHARACTER_OCTET_LENGTH Int32 Максимальная длина в байтах для двоичных данных, символьных данных или текстовых данных и изображений. Иначе возвращается значение NULL.
NUMERIC_PRECISION Unsigned Byte Точность приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
NUMERIC_PRECISION_RADIX Int16 Основание системы счисления точности приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
NUMERIC_SCALE Int32 Масштаб приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
DATETIME_PRECISION Int16 Код подтипа для datetime и интервальных типов данных SQL-92. Для других типов данных возвращается значение NULL.
CHARACTER_SET_CATALOG Строка Возвращает значение «master», т. е. имя базы данных, в которой находится кодировка, если столбец имеет символьный тип данных или текстовый тип данных. Иначе возвращается значение NULL.
CHARACTER_SET_SCHEMA Строка Всегда возвращает значение NULL.
CHARACTER_SET_NAME Строка Возвращает уникальное имя для кодировки, если столбец содержит символьные данные или текстовые данные. Иначе возвращается значение NULL.
COLLATION_CATALOG Строка Возвращает значение "master", т.е. имя базы данных, в которой определен параметр сортировки, если столбец имеет символьный тип данных или текстовый тип данных. В противном случае этот столбец содержит значение NULL.
IS_FILESTREAM Строка YES, если для столбца установлен атрибут FILESTREAM.

NO, если для столбца не установлен атрибут FILESTREAM.
IS_SPARSE Строка YES, если столбец является разреженным.

NO, если столбец не является разреженным.
IS_COLUMN_SET Строка YES, если столбец является набором столбцов.

NO, если столбец не является набором столбцов.

Пользователи

ColumnName Тип данных Description
uid Int16 Идентификатор пользователя, уникальный в этой базе данных. 1 — это владелец базы данных.
user_name Строка Имя пользователя или имя группы, уникальные в этой базе данных.
createdate Дата/время Дата добавления этой учетной записи.
updatedate Дата/время Дата последнего изменения учетной записи.

Представления

ColumnName Тип данных Description
TABLE_CATALOG Строка Каталог представления.
TABLE_SCHEMA Строка Схема, которая содержит представление.
TABLE_NAME Строка Имя представления.
CHECK_OPTION Строка Тип инструкции WITH CHECK OPTION. CASCADE, если первоначальное представление было создано с помощью инструкции WITH CHECK OPTION. Иначе возвращается значение NONE.
IS_UPDATABLE Строка Указывает, можно ли обновлять это представление. Всегда возвращает NO.

ViewColumns

ColumnName Тип данных Description
VIEW_CATALOG Строка Каталог представления.
VIEW_SCHEMA Строка Схема, которая содержит представление.
VIEW_NAME Строка Имя представления.
TABLE_CATALOG Строка Каталог таблицы, которая связана с этим представлением.
TABLE_SCHEMA Строка Schema, который содержит таблицу, связанную с этим представлением.
TABLE_NAME Строка Имя таблицы, которая связана с представлением. Базовая таблица.
COLUMN_NAME Строка Имя столбца.

UserDefinedTypes

ColumnName Тип данных Description
assembly_name Строка Имя файла для сборки.
udt_name Строка Имя класса для сборки.
version_major Object Основной номер версии.
version_minor Object Дополнительный номер версии.
version_build Object Номер сборки.
version_revision Object Номер редакции.
culture_info Object Сведения о языке и региональных параметрах, которые связаны с этим определяемым пользователем типом.
public_key Object Открытый ключ, используемый в этой сборке.
is_fixed_length Логический Указывает, является ли длина данных этого типа всегда равной значению max_length.
max_length Int16 Максимальная длина значения типа в байтах.
Create_Date Дата/время Дата создания или регистрации сборки.
Permission_set_desc Строка Удобное в использовании имя набора разрешений и (или) уровня безопасности для сборки.

См. также