sql 有什么办法可以修改 让某列的数值递增么?
因为删除了一些行的数据,想吧用户ID重新排号,有办法用类似方法实现updatetablesetlieming=1++么?没有其他的列可以参照,有办法自增么?...
因为删除了一些行的数据,想吧用户ID 重新排号,
有办法 用类似方法实现 update table set lieming=1++ 么?
没有其他的列可以参照,有办法自增么? 展开
有办法 用类似方法实现 update table set lieming=1++ 么?
没有其他的列可以参照,有办法自增么? 展开
展开全部
因为没其它列参照做条件,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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以查出某id前面有多少个id,这样来更新。
update table set lieming=(select count(id) from tb where lieming<100)
update table set lieming=(select count(id) from tb where lieming<100)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sqlserver2005数据库:
update 表名 set lieming=b.c
from 表名 a,(select lieming,row_number() over(order by lieming) c from 表名) b
where a.lieming=b.lieming
下次提问请注明数据库。
update 表名 set lieming=b.c
from 表名 a,(select lieming,row_number() over(order by lieming) c from 表名) b
where a.lieming=b.lieming
下次提问请注明数据库。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql server有个这样的函数identity(int,1,1)
你可以这样
select identity(int,1,1) as lieming, *
into newtable
from table
你可以这样
select identity(int,1,1) as lieming, *
into newtable
from table
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询