sql server 插入新的一列为作为ID列(非自增)

比如我现在有一个1000行的表。但是没有编码或者ID。我自己加了一个字段叫:编码,我想在这一列中,第一行显示为1,第二显示为2,第三行显示为3。。。。第1000行显示为1... 比如我现在有一个1000行的表。但是没有编码或者ID。我自己加了一个字段叫:编码, 我想在这一列中,第一行显示为1,第二显示为2,第三行显示为3 。。。。第1000行显示为1000,但是是非自增的。
有办法吗?谢谢大家了!!!
展开
 我来答
badkano
2013-08-26 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部

比如表名叫test

里边有编码和名称字段

建表

create table test(编码 int,名称 varchar(10))

你连续执行下边语句,看下结果

insert into test select isnull(max(isnull(编码,0)),0)+1,'aa' from test

 

截图

 

你只需要替换名称字段的内容就OK

更多追问追答
追问
insert into相当于是重新插入行了。我的表是原来就有行的。是在不增加原来的行的基础上,加了一列,这一列的数值为1,2,3。。。1000
追答
你的是sqlserver数据库还是其他什么数据库?
chensy831018
2013-08-26 · TA获得超过103个赞
知道答主
回答量:70
采纳率:0%
帮助的人:96.3万
展开全部

  可以用row_number()实现。


  

update  table set  table.编码= x.编码
  from table,
  (
  select table.主键,  ROW_NUMBER() over (order by table.排序字段) as 编码
  from table
  )  X
  where table.主键 = X.主键

 

    如果没有主键的话,有个最简单的办法。

    

select row_number() over (order by 排序字段),* from table

    用上面语句查询出结果后,把rownumber列直接粘贴到你编码那一列里就可以了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
palmers01
2013-08-26 · TA获得超过372个赞
知道小有建树答主
回答量:880
采纳率:0%
帮助的人:645万
展开全部
声明一个变量, 初始为0, 顺序遍历所有记录+1 填进去不就好了
追问
谢谢啊,我比较菜鸟,不会写,能帮助写个例子吗?谢谢啦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8ac6d36fb
推荐于2016-08-05 · TA获得超过621个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:184万
展开全部
如果是sqlserver2005以上,可以用row_number()函数直接显示出来。
并且可以根据需要排序。

Select row_number() OVER (order by 列名),* from TableName
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式