有两个表A,B
A  中有valueA  varchar(50) 字段
B  中有valueB  decimal(27,27)字段
现在我想将A的数据导入到B中,语句为
insert into database.dbo.B(valueB)
select valueA
from database.dbo.A
出现以下问题:将 varchar 转换为数据类型 numeric 时出现算术溢出错误。
然后我改为:insert into database.dbo.B(valueB)
select convert(decimal(27,27),valueA)
from database.dbo.A
还是一样的错误,请高手指教!

解决方案 »

  1.   

    decimal(27,27)
    -->
    decimal(27,7)
      

  2.   

    decimal 資料類型最多可以儲存 38 位數字,而且可以全部在小數點右邊。decimal 資料類型以確實的表示法儲存數字,而不是儲存值的近似值。定義 decimal 資料行、變數與參數的兩個屬性如下:p 指定精確度,也就是物件可包含的位數。 
    s 指定小數位數,也就是可放在小數點右邊的位數。 p 和 s 必須遵守規則:0 <= s <= p <= 38。
      

  3.   

    出现以下错误:
    将 numeric 转换为数据类型 numeric 时出现算术溢出错误
      

  4.   

    decimal(27,27)的意义是,数字总长度27,小数位27,那样就不能有整数部分了,大于1或者小于-1就溢出
      

  5.   

    语句也要相应改insert into database.dbo.B(valueB)
    select convert(decimal(27,7),valueA)
    from database.dbo.A
      

  6.   

    decimal(27,27)?全部為小數SELECT CONVERT(DECIMAL(27,27),'1')--錯誤
    SELECT CONVERT(DECIMAL(27,27),'0.1000')--正確
      

  7.   

    我怎么转不了?  报错Implicit conversion from datatype 'VARCHAR' to 'DECIMAL' is not allowed.  Use the CONVERT function to run this query. 
    为什么不允许?