"numeric precision radix" 在 SQL 服务器元数据中是什么意思?
What does "numeric precision radix" mean in the SQL Server metadata?
我正在浏览 SQL Server Management Studio 对象资源管理器:元数据。在 TempDb > Views > System Views > Columns 对象下,我发现:"Numeric Precision Radix"。我知道基数的含义(二进制、十进制、十六进制等)以及数字精度的含义(数字表示中有多少位数字,以及小数位数:小数点之后有多少位数字)。
但是元数据本身(数字精度)怎么会有基数(编码系统)?就像说油漆的CAN是什么颜色?
为什么我到处都找不到这个短语的描述?谢谢。
我相信 Numeric_Precision_Radix
是在 Information_Schema.Columns table 中指定的 SQL-99 标准。
每个 DBMS 都会有所不同。
根据此 link 指定为:
If data_type identifies a numeric type, this column indicates in which
base the values in the columns numeric_precision and numeric_scale are
expressed. The value is either 2 or 10. For all other data types,
this column is null.
对于 SQL 服务器,int
、money
和 decimal
为 10,float
和 real
为 2。参见下面的示例,其中基数为 2 且精度为 53 的浮点数,这意味着它精确到 53 位信息。
换句话说,对于 int 精度表示为 10 的 10 次方,但对于 real,它表示为 2 的 53 次方。
查看维基 link here
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) |
我正在浏览 SQL Server Management Studio 对象资源管理器:元数据。在 TempDb > Views > System Views > Columns 对象下,我发现:"Numeric Precision Radix"。我知道基数的含义(二进制、十进制、十六进制等)以及数字精度的含义(数字表示中有多少位数字,以及小数位数:小数点之后有多少位数字)。
但是元数据本身(数字精度)怎么会有基数(编码系统)?就像说油漆的CAN是什么颜色?
为什么我到处都找不到这个短语的描述?谢谢。
我相信 Numeric_Precision_Radix
是在 Information_Schema.Columns table 中指定的 SQL-99 标准。
每个 DBMS 都会有所不同。 根据此 link 指定为:
If data_type identifies a numeric type, this column indicates in which base the values in the columns numeric_precision and numeric_scale are expressed. The value is either 2 or 10. For all other data types, this column is null.
对于 SQL 服务器,int
、money
和 decimal
为 10,float
和 real
为 2。参见下面的示例,其中基数为 2 且精度为 53 的浮点数,这意味着它精确到 53 位信息。
换句话说,对于 int 精度表示为 10 的 10 次方,但对于 real,它表示为 2 的 53 次方。
查看维基 link here
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) |