SQL语句插入序号的问题, 高手请进

来源:百度知道 编辑:UC知道 时间:2024/06/09 08:26:19
有这样一张表(A),ID栏是不连续的数值(int),No栏都是0
ID No
12 0
54 0
78 0
95 0

希望通过一个SQL语句改成这样,No为自然数排列
ID No
12 1
54 2
78 3
95 4

用程序实现比较方便,但是要执行4次才可以,不知道有没有类似这样的SQL语句
update A set No=??? order by ID
这样行吗
update A set No=IDENTITY(int,1,1) order by ID

SQLServer数据库:

declare @i int Set @i = 0

Update 表 Set @i = @i + 1,No = @i

做一个循环就可以阿

set rs = Server.CreateObject("Adodb.recordset")
rs.open "select * from A order by ID",conn,1,3
if not rs.eof then
for i=1 to rs.recordcount
rs("no")=i
rs.update
rs.movenext
next

1. Oracle
可以建Sequence,数值会自动加1
2. Access
可以把ID修改成自动增长型
3. 其它数据库
写一个存储过程吧,定义变量,每次加1

IDENTITY(int,1,1) 用这个就可以了 直接把你需要自动增加的列设置成标识种子就可以了
例如
create table A
(
ID int,
No int IDENTITY(1,1)
)