MS SQL 服务器上 Oracle 的数字 (2, 4) 的最佳等价物是什么?



在Oracle上,可以创建数字数据类型;更精确的";而不是数字的数量所传达的信息。所以在number(2, 4)的情况下,可以存储0.0023。不可能像0.12甚至0.001那样填充前两位小数。这将导致错误ORA-01438: value larger than specified precision allowed for this column

SQL server不允许使用数据类型numeric(2, 4)。错误是:The scale (4) for column 'a' must be within the range 0 to 2.显然我可以用numeric(4, 4)创建表。

Oracle上最精确的数字数据类型是number(38, 127)。小数位数1到89无法填充,而是从90到127。如果要在SQL server上解决这样的需求,您会怎么做?

您能使用CHECK约束吗?示例:

ALTER TABLE tbl ADD col DECIMAL(4,4) CHECK (ABS(col) < 0.01);

最新更新