Поделиться через


Хранимая процедура sp_datatype_info (Transact-SQL)

Возвращает сведения о типах данных, поддерживаемых текущей средой.

Значок ссылки на разделСоглашения о синтаксическом обозначении в Transact-SQL

Синтаксис

sp_datatype_info [ [ @data_type = ] data_type ] 
     [ , [ @ODBCVer = ] odbc_version ] 

Аргументы

  • [ @data_type= ] data_type
    Кодовый номер типа данных. Для получения списка всех типов данных опустите этот аргумент. Аргумент data_type имеет тип int и значение по умолчанию 0.

  • [ @ODBCVer=] odbc_version
    Версия используемого протокола ODBC. Аргумент odbc_version имеет тип tinyint и значение по умолчанию 2.

Значения кода возврата

Отсутствует

Результирующие наборы

Имя столбца

Тип данных

Описание

TYPE_NAME

sysname

Тип данных, зависящий от СУБД.

DATA_TYPE

smallint

Код типа ODBC, с которым сопоставляются все столбцы данного типа.

PRECISION

int

Максимальная точность типа данных в источнике данных. Для типов данных, к которым понятие точности не применимо, возвращается значение NULL. Значение, возвращаемое для столбца PRECISION, имеет десятичную форму.

LITERAL_PREFIX

varchar(32)

Символ или символы, используемые перед константой. Например, значения символьных типов заключаются в одинарные кавычки ('), а двоичные значения помечаются символом «0x».

LITERAL_SUFFIX

varchar(32)

Символ или символы, используемые после константы. Например, после значений символьных типов указывается одинарная кавычка ('), а после двоичных значений не указывается ничего.

CREATE_PARAMS

varchar(32)

Описание параметров создания типа данных. Например, типу decimal соответствует описание «precision, scale», типу float — NULL, а типу varchar — «max_length».

NULLABLE

smallint

Указывает возможность содержать значение NULL.

1 = значения NULL допускаются.

0 = значения NULL не допускаются.

CASE_SENSITIVE

smallint

Чувствительность к регистру.

1 = все столбцы этого типа чувствительны к регистру (для параметров сортировки).

0 = все столбцы этого типа не чувствительны к регистру.

SEARCHABLE

smallint

Задает возможность поиска для типа столбца:

1 = поиск невозможен;

2 = возможен поиск с оператором LIKE;

3 = возможен поиск с предложением LIKE;

4 = возможен поиск с предложением WHERE или оператором LIKE.

UNSIGNED_ATTRIBUTE

smallint

Знак типа данных.

1 = тип данных без знака.

0 = тип данных со знаком.

MONEY

smallint

Определяет тип данных money.

1 = Тип данных money.

0 = тип данных, отличный от money.

AUTO_INCREMENT

smallint

Автоматическое приращение.

1 = автоматическое приращение выполняется.

0 = автоматическое приращение не выполняется.

NULL = атрибут неприменим.

Приложение может вставлять значение в столбец с этим атрибутом, но не может обновлять значения такого столбца. За исключением типа данных bit, параметр AUTO_INCREMENT допустим только для типов, принадлежащих к категориям точных или приблизительных числовых типов данных.

LOCAL_TYPE_NAME

sysname

Локализованная версия имени типа данных, которое зависит от источника данных. Например, тип DECIMAL называется по-французски DECIMALE. Если локализованное имя не поддерживается источником данных, возвращается значение NULL.

MINIMUM_SCALE

smallint

Минимальный масштаб типа данных в источнике данных. Если тип данных имеет фиксированный масштаб, это значение содержится и в столбце MINIMUM_SCALE, и в столбце MAXIMUM_SCALE. Для типов данных, к которым понятие масштаба не применимо, возвращается значение NULL.

MAXIMUM_SCALE

smallint

Максимальный масштаб типа данных в источнике данных. Если максимальный масштаб не определен отдельно в источнике данных и равен максимальной точности, этот столбец содержит то же значение, что и столбец PRECISION.

SQL_DATA_TYPE

smallint

Значение типа данных SQL, как оно выглядит в поле TYPE дескриптора. Этот столбец эквивалентен столбцу DATA_TYPE (за исключением типа данных datetime и типа данных ANSI interval). Данное поле обязательно возвращает какое-либо значение.

SQL_DATETIME_SUB

smallint

Вложенный код типа datetime или типа ANSI interval, если значение SQL_DATA_TYPE равно SQL_DATETIME или SQL_INTERVAL. В случае типов данных, отличных от datetime и ANSI interval, это поле имеет значение NULL.

NUM_PREC_RADIX

int

Количество битов или разрядов, используемое при вычислении максимального числа, которое может содержаться в столбце. Если тип данных является приблизительным числовым типом, этот столбец содержит значение 2, которое говорит о том, что тип включает несколько битов. Если тип данных является точным числовым типом, этот столбец содержит значение 10, которое говорит о том, что тип включает несколько десятичных разрядов. В противном случае этот столбец содержит значение NULL. Объединив точность с основанием системы счисления, приложение может определить максимальное число, которое может содержаться в столбце.

INTERVAL_PRECISION

smallint

Значение главного параметра точности интервала, если data_type является interval. В противном случае — значение NULL.

USERTYPE

smallint

Значение usertype из таблицы systypes.

Замечания

Хранимая процедура sp_datatype_info эквивалентна функции SQLGetTypeInfo в ODBC. Возвращаемые этой процедурой результаты упорядочиваются по значению DATA_TYPE, а затем по степени соответствия типа данных аналогичному типу данных ODBC SQL.

Разрешения

Требуется членство в роли public.

Примеры

В следующем примере возвращаются сведения о типах данных sysname и nvarchar, для чего значение data_type устанавливается в -9.

USE master;
GO
EXEC sp_datatype_info -9;
GO