为了账号安全,请及时绑定邮箱和手机立即绑定

sql server更新字段信息,让其自动增长

sql server更新字段信息,让其自动增长

12345678_0001 2018-08-31 17:08:51
如图所示,默认的查询出的信息如上,我现在想要的操作是,p_id的排序方式递增,而对应的pc_id改成 1、2、3、4、5..这样一次递增,先贴出我的处理方式--(mysql中的处理)set @rownum=0;update productSET pc_id = (select @rownum := @rownum +1 as nid) ORDER BY p_id asc可是这种在mysql中可以,但在sql server中不行,大神你们的方法怎样?
查看完整描述

1 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

自增序号使用row_number函数,sqlserver 2008支持merge的写法,如:

merge t as target

using (select p_id, row_number() over (order by p_id)  as pc_id_seq from t ) as source

on (target.p_id = source.p_id)

when matched then

update set target.pc_id = source.pc_id_seq;


查看完整回答
反对 回复 2018-09-14
  • 1 回答
  • 0 关注
  • 2151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信