可以用row_number() over()窗口函数。declare @TAB table(rowno int null,rid varchar(50),rname varchar(50)); insert into @TAB values(null,newid(),'beijing'),(null,newid(),'shanghai'),(null,newid(),'guangzhou'),(null,newid(),'shenzhen'),(null,newid(),'tianjin') update a set a.rowno=a.row_no from (select *,row_number() over(order by rname) as row_no from @TAB) as a select * from @TAB where rowno=3
insert into @TAB values(null,newid(),'beijing'),(null,newid(),'shanghai'),(null,newid(),'guangzhou'),(null,newid(),'shenzhen'),(null,newid(),'tianjin')
update a set a.rowno=a.row_no from (select *,row_number() over(order by rname) as row_no from @TAB) as a
select * from @TAB where rowno=3