你定义的字段是什么数据类型?cast(col as decimal(18,2))

解决方案 »

  1.   

    字段名不要加'',最好这样
    update 表名 set 字段名 =cast(字段名 as float)- 改变数字
      

  2.   

    还是不行,我的字段名没有加引号,在这里是为了标示一下
    字段名是varchar类型,因为数据库的字段名称是字符,但这个字段里存储的数据是float类型的
    服务器: 消息 8114,级别 16,状态 5,行 16
    将数据类型 varchar 转换为 float 时出错。
      

  3.   

    不知我理解是否正确!
    如果'字段名'是变量.你必用动态SQL
    declare @sql varchar(1000)
    select @sql='update 表名 set ' + 字段名 + '=(' + 字段名 + '-200)'
    exec @sql
      

  4.   


    update 表名 set 字段名 =cast((cast(字段名 as float)- 改变数字) as varchar)
      

  5.   


    我是用的动态sql,可是编译都通不过啊
      

  6.   

    update 表名 set 字段名 =cast((cast(字段名 as float)- 改变数字) as varchar)
      

  7.   

    动态sql执行前,先试下print @sql
    把sql语句单独拿出来看看有没有语法错误
      

  8.   

    能print就好了,分析都通不过的~~
    我现在只能把后面那个数字变量人为的放到一个临时表中去
    没太搞懂这个到底是怎么执行的