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

查看:97
本文介绍了mysql - sql server更新字段信息,让其自动增长的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题


如图所示,默认的查询出的信息如上,我现在想要的操作是,p_id的排序方式递增,而对应的pc_id改成 1、2、3、4、5..这样一次递增,先贴出我的处理方式--(mysql中的处理)

set @rownum=0;
update product
SET pc_id = (select @rownum := @rownum +1 as nid) ORDER BY p_id asc

可是这种在mysql中可以,但在sql server中不行,大神你们的方法怎样?

解决方案

自增序号使用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;

这篇关于mysql - sql server更新字段信息,让其自动增长的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆