首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 怎么实现这种自动编号

2012-01-16 
sql 如何实现这种自动编号类似于给一个班级的学生自动编学号比如原表nameidaabbcc求update语句可以达到自

sql 如何实现这种自动编号
类似于给一个班级的学生自动编学号

比如原表
name     id
aa
bb
cc

求update语句   可以达到自动编号的目的
name   id
aa       id001
bb       id002
cc       id003

[解决办法]
Create Table TEST
(nameVarchar(10),
idChar(5))
Insert TEST Select 'aa ', Null
Union All Select 'bb ', Null
Union All Select 'cc ', Null
GO
Update
A
Set
id = 'id ' + Right(1000 + (Select Count(*) From TEST Where name <= A.name), 3)
From
TEST A

Select * From TEST
GO
Drop Table TEST
--Result
/*
nameid
aaid001
bbid002
ccid003
*/
[解决办法]
paoluo(一天到晚游泳的鱼) ( )

哥们,如果插入三条,然后将第二条删除。你这的代码会出现问题吧。
用MAX会好点吧。
id = 'id ' + Right(1000 + (Select Max(*) From TEST Where name <= A.name), 3)

[解决办法]
这么写不知道是不是LZ想要的
如下:
(id 如果为varchar形)
---声明变量varchar@i,出始值为0---
declare @i varchar Set @i = '0 '
---update表让字段id=@i=@i+1----
Update [表] Set @i = @i + 1,id = 'id00 '+ @i

热点排行