2017-04-12 88 views
0

我有這個表TAB1 inserte數據與遞增值

name 
----- 
'big' 
'smal' 
'bird' 

TAB2

id name 
-- --- 
1 empty 
2 empty 
3 empty 
4 empty 

我想從TAB1插入名稱以此期望的結果

id name 
    -- --- 
    1 empty 
    2 empty 
    3 empty 
    4 empty 
    5 'big' 
    6 'smal' 
    7 'bird' 
遞增ID 到TAB2
+1

表格tab2定義。 – jarlh

+0

@jarlh對不起,我不明白 – Moudiz

+0

是我的回答不明確@jarlh – Moudiz

回答

1

正確的處理方法是table2定義id作爲標識列。

create table table2 (
    id int identity primary key, 
    . . . 

然後,你可以簡單地做:

insert into table2(name) 
    select name 
    from table1; 

你應該考慮正確定義的表,如果它不是,當你定義表格你做到這一點。但是,您也可以在更新版本的Sybase中執行此操作:

insert into table2(name) 
    select maxid + row_number() over (order by name), name 
    from table1 cross join 
      (select max(id) as maxid from table2) x; 

注意:這將按字母順序分配id值。

+0

哪個sybase版本包含這個函數? – Moudiz

+0

@Moudiz。 。 。 Google:「sybase row_number()」 –