sql 有什么办法可以修改 让某列的数值递增么?

因为删除了一些行的数据,想吧用户ID重新排号,有办法用类似方法实现updatetablesetlieming=1++么?没有其他的列可以参照,有办法自增么?... 因为删除了一些行的数据,想吧用户ID 重新排号,
有办法 用类似方法实现 update table set lieming=1++ 么?
没有其他的列可以参照,有办法自增么?
展开
 我来答
百度网友5c91d28
推荐于2018-03-14 · TA获得超过5084个赞
知道大有可为答主
回答量:1916
采纳率:50%
帮助的人:1723万
展开全部
DECLARE @i int
SET @i=0
UPDATE table
SET @i=@i+1,lieming=@i

这样就可以了
xiao_3540
2011-06-10 · TA获得超过202个赞
知道小有建树答主
回答量:194
采纳率:20%
帮助的人:85.9万
展开全部
因为没其它列参照做条件,update又是全表更新,所以要逐行处理,需要用到游标
DECLARE @i int
set @i=1
DECLARE test CURSOR FOR
select lieming from 表
OPEN test
WHILE @@FETCH_STATUS = 0
BEGIN
update 表 set lieming=@i
set @i=@i+1
end
CLOSE test
DEALLOCATE test
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yan535236329
2011-06-10 · TA获得超过364个赞
知道小有建树答主
回答量:844
采纳率:0%
帮助的人:521万
展开全部
你可以查出某id前面有多少个id,这样来更新。
update table set lieming=(select count(id) from tb where lieming<100)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abill425
2011-06-10 · TA获得超过1726个赞
知道小有建树答主
回答量:663
采纳率:100%
帮助的人:1088万
展开全部
sqlserver2005数据库:
update 表名 set lieming=b.c
from 表名 a,(select lieming,row_number() over(order by lieming) c from 表名) b
where a.lieming=b.lieming

下次提问请注明数据库。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nietiezheng
2011-06-10 · TA获得超过5536个赞
知道大有可为答主
回答量:3132
采纳率:87%
帮助的人:1235万
展开全部
sql server有个这样的函数identity(int,1,1)
你可以这样
select identity(int,1,1) as lieming, *
into newtable
from table
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式