Хранимая процедура sp_datatype_info (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