sql 如何实现这种自动编号
类似于给一个班级的学生自动编学号
比如原表
name id
aa
bb
cc
求update语句 可以达到自动编号的目的
name id
aa id001
bb id002
cc id003
------解决方案--------------------Create Table TEST
(name Varchar(10),
id Char(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
/*
name id
aa id001
bb id002
cc id003
*/
------解决方案--------------------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