在Oracle中,当您具有NUMBER数据类型并且没有像NUMBER(18,2)
那样指定精度和小数位数并像这样使用它时NUMBER
它将存储给定的值。
从手册
如果未指定精度,则列将存储给定的值
现在我想知道是否有办法让SQL Server中的NUMERIC 数据类型做同样的事情。我必须使用数字而不是十进制或其他数据类型,并且不允许指定精度或小数位数,因为我无法测试将使用的数据是否会导致错误,因为我无法访问数据。我只知道这些数据不会给我们的 Oracle 数据库带来任何问题,该数据库仅使用 NUMBER 数据类型而没有任何规范。
否,数值需要精度和小数位数,如果未设置,则具有默认值。就这么简单。
https://learn.microsoft.com/en-us/sql/t-sql/data-types/decimal-and-numeric-transact-sql?view=sql-server-2017
报价:
十进制[ (p[ ,s] (] 和数字[ (p[ ,s] (] 固定精度和小数位数 数字。使用最大精度时,有效值为 - 10^38 +1 到 10^38 - 1。十进制的 ISO 同义词是 dec 和 dec(p, s(。数字在功能上等效于十进制。
像往常一样,文档是您的朋友。