Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 将列小数(18,8)转换为另一列小数(18,18)_Sql Server 2005 - Fatal编程技术网

Sql server 2005 将列小数(18,8)转换为另一列小数(18,18)

Sql server 2005 将列小数(18,8)转换为另一列小数(18,18),sql-server-2005,Sql Server 2005,我有一个列,它的十进制值是18,8。我被要求将其扩展到18,18,以便在,之后保留更多的位置 ALTER TABLE [dbo].[TransakcjeGotowkowe] ALTER COLUMN TransakcjeGotowkoweKwota decimal (18,18) NULL Msg 8115, Level 16, State 8, Line 1 Arithmetic overflow error converting numeric to data type numeric.

我有一个列,它的十进制值是18,8。我被要求将其扩展到18,18,以便在
之后保留更多的位置

ALTER TABLE [dbo].[TransakcjeGotowkowe]
ALTER COLUMN TransakcjeGotowkoweKwota decimal (18,18) NULL

Msg 8115, Level 16, State 8, Line 1
Arithmetic overflow error converting numeric to data type numeric.
The statement has been terminated.
我也尝试过用GUI来实现它。没有其他更改,只是希望在之后保存更多数据


还有其他方法吗?

十进制数据类型由(精度、刻度)组成

精度是小数点左侧和右侧的总位数

刻度是小数点右侧的位数

如果要将右侧的位数增加到18,则需要提高整体精度。在你的情况下,增加10

因此,您需要
十进制(28,18)


您需要将其更改为
28,18
您的当前列允许小数点左侧有10位数字


将其更改为
18,18
将只允许介于
+/-0.99999999999999999

可爱:-)我喜欢StackOverflow用户:-)@Martin-是的,我刚刚重新阅读了问题。我会更新我的答案。谢天谢地,在36,18的时候剃毛不会影响值,我可以这样做吗?如果我需要它,它只会给我更高价值的空间?还是保持在28,18更好?@MadBoy-
36,18
是每行17字节<代码>28,18
为13字节。这是否会影响页面上的行数取决于表定义的其余部分。据我所知,十进制(18,8)实际上允许存储10,8。所以如果我想得到10,18,它必须是(28,18)。因此精度增加了10。