2010-10-21 63 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

相關問題