SQL 关于NUMERIC类型数据的修改语句

sql2008 在一张表里 有一列数据类型是NUMERIC 假设这个值现在是55.6 我现在想将55.6改为66.0 这个语句应该如何写?
我写的是
update A set b=66.0 where id=1
执行之后 报错 说vachar不能转换为NUMERIC类型

请各位大神指教~~~拜谢

第1个回答  2013-02-23
很明显,你的A表B列不是numeric类型,而是varchar型的,你用这句试试看:
update A set b=cast(66.0 as varchar(10)) where id=1追问

额··· B列是numeric类型的·····是我在输入 b=66.0的时候 报错说的是66.0是varchar类型的···
按照你的说法 是不是应该是 updat A set b=cast(66.0 as numeric(tangram_guid_1361630259177)) where id=1

?? 我不知道怎么填······
顺便请教下 cast 是什么意思···

追答

这样如果我给你的那句执行时报错,那就证明B列应该是numeric型的,如果执行通过,就证明B列是字符型的。
另外不管怎么说66.0不会被sql认为是varchar型的,除非你带了引号:'66.0'

本回答被提问者和网友采纳
第2个回答  2013-02-23
检查一下B列吧,肯定不是NUMERIC型的
update A set b='66.0' where id=1
第3个回答  2013-02-23
update A set b=66 where id=1
语句没有问题,但A必须是数据表名,B必须为列名并且类型是NUMERIC
相似回答