如下
create table DBO.TCORPASSET (
L_PORT_ID int null,
L_DATE int not null,
EN_ALL_ASSET numeric(19,4) null,
EN_PURE_ASSET numeric(19,4) null,
EN_PURE_CAPITAL numeric(19,4) null,
EN_DATA1 numeric(19,4) null,
EN_DATA2 numeric(19,4) null,
EN_DATA3 numeric(19,4) null,
EN_DATA4 numeric(19,4) null,
EN_DATA5 numeric(19,4) null,
EN_DATA6 numeric(19,4) null,
EN_DATA7 numeric(19,4) null,
EN_DATA8 numeric(19,4) null,
EN_DATA9 numeric(19,4) null,
EN_DATA10 numeric(19,4) null
)
是不是NOT NULL表示为主键 而NULL为非主键?
另外NUMERIC是不是19位,然后4位小数的意思?
DECIMAL的用法和NUMERIC又有什么区别呢?
create table DBO.TCORPASSET (
L_PORT_ID int null,
L_DATE int not null,
EN_ALL_ASSET numeric(19,4) null,
EN_PURE_ASSET numeric(19,4) null,
EN_PURE_CAPITAL numeric(19,4) null,
EN_DATA1 numeric(19,4) null,
EN_DATA2 numeric(19,4) null,
EN_DATA3 numeric(19,4) null,
EN_DATA4 numeric(19,4) null,
EN_DATA5 numeric(19,4) null,
EN_DATA6 numeric(19,4) null,
EN_DATA7 numeric(19,4) null,
EN_DATA8 numeric(19,4) null,
EN_DATA9 numeric(19,4) null,
EN_DATA10 numeric(19,4) null
)
是不是NOT NULL表示为主键 而NULL为非主键?
另外NUMERIC是不是19位,然后4位小数的意思?
DECIMAL的用法和NUMERIC又有什么区别呢?
另外NUMERIC是不是19位,然后4位小数的意思? 这个要看你后面小括号里面是怎么定义的了
固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。p(精度)
最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。s (小数位数)
小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。
declare @d2 decimal(2,1)
declare @d3 float set @d1=1.01
set @d2=1.01
set @d3=1.01select @d1,@d2,@d3/*
1.0100 1.0 1.01*/
比如象declare @d2 decimal(2,1) set @d2=1.01
最后SELECT出来也只能舍去小数点后面的吧?