“数字精度基数”在SQL Server元数据中的含义是什么?

时间:2015-03-03 15:30:29

标签: sql-server radix

我正在浏览SQL Server Management Studio对象资源管理器:元数据。在TempDb>下意见>系统视图>我找到的列对象:“Numeric Precision Radix”。我知道基数的意思是什么(二进制,十进制,十六进制等)和数字精度意味着什么(数字表示中有多少位数,而Scale:基数点后面有多少位数)。

但元数据本身(数字精度)如何具有 Radix (编码系统)?这就像说油漆的CAN是什么颜色的?

为什么我不能在任何地方找到这句话的描述?谢谢。

1 个答案:

答案 0 :(得分:12)

我认为{_ 1}在Information_Schema.Columns表中指定,由SQL-99标准指定。

每个DBMS都会有所不同。 根据此link,它被指定为:

  

如果data_type标识数字类型,则此列指示其中   以numeric_precision和numeric_scale列为基础的值   表达。值为2或10.对于所有其他数据类型,   此列为空。

对于SQL Server,Numeric_Precision_Radixintmoney为10,decimal为&2; float。请参阅下面的示例,其中float的基数为2,精度为53,这意味着它精确到53位信息。

换句话说,int精度用10表示为10的幂,但实际上它表示为2的幂为53.

请参阅wiki link here

SQL Fiddle

MS SQL Server 2008架构设置

real

查询1

CREATE TABLE MyRadix
(
    aInt int,
    bFloat float,
    cMoney Money,
    dDecimal Decimal(12,10),
    eReal Real
)

<强> Results

SELECT COLUMN_NAME, DATA_TYPE, NUMERIC_PRECISION_RADIX, NUMERIC_PRECISION, NUMERIC_SCALE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MyRAdix'