我想创建一个新列,并使用行号填充该列中每行的值。
这可以通过这样做在oracle中实现。
alter table mytable add (myfield integer);
update mytable set myfield = rownum;
如何在SYBASE ASE中完成?
答案 0 :(得分:3)
alter table mytable
add id bigint identity not null
这就是全部。每行中都会有一列id
,其中包含该行的唯一序列号。
答案 1 :(得分:0)
insert into some_names (name) values ('Huey');
insert into some_names (name) values ('Dewey');
insert into some_names (name) values ('Louie');
现在我们可以做这样的事情:
Select
答案 2 :(得分:0)
在我的情况下,当我尝试使用标识列时间时,它无法在合理的时间内完成(196400行)。
快速简便的方法是创建一个INT列并使用每行后增加的临时变量 @id 填充它。 这个解决方案在~4秒内完成。
alter mytable add myfield INT
DECLARE @id INT
SET @id = 0
UPDATE mytable
SET @id = myfield = @id + 1