表A
字段两个:ID,OLID其中ID是int,不自增一个事务
第一个SQL:insert A(ID,OLID)select max(ID+1),'1'
第二个SQL:我要把上一条记录的ID值插入OLID中.要怎么写才可以啊?

解决方案 »

  1.   

    创建个INSERT触发器,在触发器中把新生成的ID赋予OLID.例如:
    (注意:ID列的值必须是唯一的,不能重复)
    create trigger trg_insert_test on tbtest
    for insert
    as
    update a set OLDID = i.ID from tbtest as a 
    inner join inserted as i on a.ID = i.ID
    GO
      

  2.   

    select top 1 from a order by id desc
      

  3.   

    create table #a(id int,olid int)insert into #a select '10','0'--测试数据,否则MAX(ID)为NULLinsert into #A select max(id)+1,max(id) from #ainsert into #A select max(id)+1,max(id) from #ainsert into #A select max(id)+1,max(id) from #a
    select * from #adrop table #a
      

  4.   


    id          olid        
    ----------- ----------- 
    10          0
    11          10
    12          11
    13          12(所影响的行数为 4 行)