Я считаю, что Numeric_Precision_Radix
указано в таблице Information_Schema.Columns, как указано в стандарте SQL-99.
Для каждой СУБД он будет разным. согласно этой ссылке это указано как:
Если data_type идентифицирует числовой тип, этот столбец указывает, в какой базе выражены значения в столбцах numeric_precision и numeric_scale. Значение равно 2 или 10. Для всех других типов данных этот столбец пуст.
Для SQL Server это 10 для int
, money
и decimal
и 2 для float
и real
. См. ниже, например, где для числа с плавающей запятой, где основание равно 2, а точность равна 53, что означает, что он точен до 53 битов информации.
Другими словами, для int точность выражается числом 10 в 10-й степени, но для реального числа она выражается как 2 в 53-й степени.
См. вики ссылка здесь
скрипт SQL
Настройка схемы MS SQL Server 2008:
CREATE TABLE MyRadix
(
aInt int,
bFloat float,
cMoney Money,
dDecimal Decimal(12,10),
eReal Real
)
Запрос 1:
SELECT COLUMN_NAME, DATA_TYPE, NUMERIC_PRECISION_RADIX, NUMERIC_PRECISION, NUMERIC_SCALE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MyRAdix'
Результаты:
| COLUMN_NAME | DATA_TYPE | NUMERIC_PRECISION_RADIX | NUMERIC_PRECISION | NUMERIC_SCALE |
|-------------|-----------|-------------------------|-------------------|---------------|
| aInt | int | 10 | 10 | 0 |
| bFloat | float | 2 | 53 | (null) |
| cMoney | money | 10 | 19 | 4 |
| dDecimal | decimal | 10 | 12 | 10 |
| eReal | real | 2 | 24 | (null) |
person
Steve Ford
schedule
03.03.2015