如何存储SQL Server中给定的NUMERIC值

时间:2018-08-13 12:23:56

标签: sql sql-server oracle types database-migration

在Oracle中,当您具有NUMBER数据类型并且未指定精度和小数位数时,例如NUMBER(18,2),而是像这样NUMBER一样使用它,而是将存储给定的值。

From the manual

  

如果未指定精度,则该列将存储给定值

现在,我想知道是否有一种方法可以让SQL Server中的NUMERIC数据类型执行相同的操作。我必须使用NUMERIC而不是DECIMAL或其他数据类型,并且由于无法访问数据,因此无法测试将使用的数据是否会导致错误,因此我无法指定精度或小数位数。我只知道该数据不会对我们的Oracle数据库造成任何麻烦,该数据库仅使用NUMBER数据类型而没有任何规范。

1 个答案:

答案 0 :(得分:2)

否,数字需要精度和小数位数,并且如果未设置,则具有默认值。这样简单。

https://docs.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)。数字在功能上等同于十进制。

通常,文档是您的朋友。