Sql server 2005 将列小数(18,8)转换为另一列小数(18,18)
我有一个列,它的十进制值是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.
,
之后保留更多的位置
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。