2010-10-21 62 views
3

我有一个十进制值为18,8的列。我被要求将它扩大到18,18,以便在,之后拥有更多的地方。将十进制(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来做到这一点。没有其他更改只是想在之后保存更多数据。

是否有其他方法可以做到这一点?

回答

4

十进制数据类型是由(精度,小数)

精密是数字的左侧和小数点右侧的总数。

比例尺是小数点右边的位数。

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

所以,你需要decimal(28,18)

MSDN Article on Precision & Scale

+2

可爱的:-)之间我爱StackOverflow的用户:-) – MadBoy 2010-10-21 12:28:27

+1

@马丁一个范围 - 是的,我刚刚重新阅读的问题。我会更新我的答案。谢谢 – codingbadger 2010-10-21 12:30:43

+0

拥有它在36,18不影响值,我可以这样呢?如果我需要它,它只会给我更高的价值空间?或者最好保持在28,18? – MadBoy 2010-10-21 12:33:13

2

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

将其更改为18,18将只允许+/-0.999999999999999999

+0

感谢您的解释。 – MadBoy 2010-10-21 12:28:45

相关问题