我正在浏览SQL Server Management Studio对象资源管理器:元数据。在TempDb>下意见>系统视图>我找到的列对象:“Numeric Precision Radix”。我知道基数的意思是什么(二进制,十进制,十六进制等)和数字精度意味着什么(数字表示中有多少位数,而Scale:基数点后面有多少位数)。
但元数据本身(数字精度)如何具有 Radix (编码系统)?这就像说油漆的CAN是什么颜色的?
为什么我不能在任何地方找到这句话的描述?谢谢。
答案 0 :(得分:12)
我认为{_ 1}在Information_Schema.Columns表中指定,由SQL-99标准指定。
每个DBMS都会有所不同。 根据此link,它被指定为:
如果data_type标识数字类型,则此列指示其中 以numeric_precision和numeric_scale列为基础的值 表达。值为2或10.对于所有其他数据类型, 此列为空。
对于SQL Server,Numeric_Precision_Radix
,int
和money
为10,decimal
为&2; float
。请参阅下面的示例,其中float的基数为2,精度为53,这意味着它精确到53位信息。
换句话说,int精度用10表示为10的幂,但实际上它表示为2的幂为53.
请参阅wiki link here
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'