DECLARE   @code                    int
DECLARE   @areaLastYear            float  
DECLARE   @areaCurrentYear         float      
DECLARE   @changeRate              float

解决方案 »

  1.   

    SELECT @SQLInsertResult = "INSERT "+ @resultTable + "(TypeID,AreaLY,PercentLY,AreaCY,PercentCY,ChangeRate) VALUES("
                           + @code + "," + @areaLastYear + "," + 0.00 + "," +@areaCurrentYear+ "," + 0.00 + "," +  @changeRate  + ")"
    这里面有很多的强制类型转换,不象VB用&连接可以将数字转换为字符
    SELECT @SQLInsertResult = 'INSERT '+ @resultTable + '(TypeID,AreaLY,PercentLY,AreaCY,PercentCY,ChangeRate) VALUES('
                           +cast( @code  as varchar(10))+ ',' + cast(@areaLastYear as varchar(10)) + ',0.00 ,' +cast(@areaCurrentYear as varchar(10))+ ',0.00 ,' +  cast(@changeRate as varchar(10))  + ')'
      

  2.   

    是要将@code  ,@areaLastYear ...这些变量转化为表格字段的数据类型吗?这样还是不行啊!服务器: 消息 8114,级别 16,状态 5,行 92
    将数据类型 varchar 转换为 numeric 时出错。
      

  3.   

    类型强制转换可以用CONVERT()函数
    用法:CONVERT(新类型,要转换的字段或变量)
      

  4.   

    同意:CONVERT(新类型,要转换的字段或变量)
      

  5.   

    在我的数据库里面,TypeID是int型,AreaLY,PercentLY,AreaCY,PercentCY,ChangeRate是float型的,我的相关变量的类型都是对的啊,为什么还要转换啊?如果我把与他们转换为varchar(10),也会出错:服务器: 消息 8115,级别 16,状态 6,过程 gen_result,行 95
    [Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 转换为数据类型 numeric 时发生算术溢出错误。@RETURN_VALUE = N/A