sql - How to do autoincrement based on last value from another table? -
i'm inserting data 1 table table. take last value first table id , need increment there, have taken max(id) + 1 , doing increment i'm getting same values
declare @t table (id int,vid int,sname varchar(10),rname varchar(10)) insert @t (id,vid,sname,rname)values (4601,1,'car','maruti'), (4601,1,'car','benz'), (4601,1,'car','honda') declare @tt table (id int,vid int,sname varchar(10),rname varchar(10)) insert @tt (id,vid,sname,rname)values (1,1,'bike','dio'), (1,1,'bike','pulsar'), (1,1,'bike','duke') , (2,1,'cloth','jeans'), (2,1,'cloth','shirts'), (2,1,'cloth','short') insert @t (id,vid,sname,rname) select (select max(id)+1 @t)id,row_number()over(order vid)vid,sname,rname @tt i don't have identity property on either tables.
how output this:
id vid sname rname 4601 1 car maruti 4601 2 car benz 4601 3 car honda 4602 1 bike dio 4602 2 bike pulsar 4602 3 bike duke 4603 1 cloth jeans 4603 2 cloth shirts 4603 3 cloth short
i think, looking this.
use max(id) of @t + id incremented values of id , row_number() partition by partitioned values of vid
insert @t (id,vid,sname,rname) select (select max(id) @t) + id id,row_number()over(partition id order vid)vid,sname,rname @tt inserted values
4602 1 bike dio 4602 2 bike pulsar 4602 3 bike duke 4603 1 cloth jeans 4603 2 cloth shirts 4603 3 cloth short
Comments
Post a Comment