SQL如何将一列数据批量修改 将该列数据本身加一

我有一列叫ID现在我想让他全部自加1比如原来是233132的现在要变成233133我用了语句setid=id+1但是因为原来的语句是varchar类型的这个会报错溢出更改... 我有一列叫ID
现在我想让他全部自加1
比如原来是233132的现在要变成233133
我用了语句set id=id+1
但是因为原来的语句是varchar类型的 这个会报错 溢出
更改为int类型的时候 提示保存已经超出了最大值了 无法保存
因为我的ID到了最后有12位了
现在的问题是我转换数据类型的时候就提示我数据溢出 这个如何处理
不管是转换为int还是decimal

最后用了这个语句改了
SET ID = CAST(ID AS numeric(20)) + 1
展开
 我来答
tangguogougou
2012-09-25 · 超过23用户采纳过TA的回答
知道答主
回答量:103
采纳率:0%
帮助的人:24.3万
展开全部
Varchar 无法参与运算~是否考虑将ID改为Int型
然后 update 表名 set id=id+1 where 条件

如果ID标识列为Varchar 更改为Int不会发生值的变化放心改吧
更多追问追答
追问
那么我是不是可以手工将该列更改为int
会不会我的数值超出范围
因为我的ID到了最后有12位了
追答
数据库中 可是设置id的长度 ~可以将长度的值是位数 比如12 那么就是12位的
szm341
2012-09-25 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5172万
展开全部
update table set id= convert(varchar,convert(bigint,id)+1)
-----------------------
据提示,你的id里面有非数字字符,请检查
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sanpo521
2012-09-25 · 超过22用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:48万
展开全部
UPDATE 表名 SET ID=(CAST(ID AS NUMERIC(16,0))+1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vicki_lin
2012-09-25
知道答主
回答量:7
采纳率:0%
帮助的人:1.1万
展开全部
set id=convert(varchar(10),convert(int,id)+1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pw33
2012-09-25 · TA获得超过241个赞
知道小有建树答主
回答量:271
采纳率:0%
帮助的人:221万
展开全部
sqlserver 的话
update t set id=cast(id as numeric(18,0))+1 where isnumeric(id)=1
追问

提示就是

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 6条折叠回答
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式