因为同一条记录的另外一个字段的值跟它的id号有关联,即插入一条记录时,必须先知道将自动生成的id号是多少?
断号无所谓,只是想插入的记录的id是最后一条记录加一.

解决方案 »

  1.   

    另外一个字段的值跟它的id号有关联,可以用触发器来作出里,要不谁也不直到下一条的id号是多少,特别是在多用户的情况。
      

  2.   

    触发器中:
    select @@identity
    就可以知道要插入的值是什么如果非要强行改变identity属性的字段的值可以:
    SET IDENTITY_INSERT 你的表名 ON
    insert into你的表名(id,name) select max(id)+1,'very easy' from你的表名;
    SET IDENTITY_INSERT 你的表名 OFF
      

  3.   

    与id关联的那个字段,还有一个关联参数,是程序中生成的,如果用触发器,那个参数怎样传过去呢?
     Yang_(扬帆破浪),能留下您的QQ或msn吗?希望可以请教您。
    [email protected]
      

  4.   

    SET IDENTITY_INSERT 你的表名 ON
    insert into你的表名(id,name) select max(id)+1,'very easy' from你的表名;
    SET IDENTITY_INSERT 你的表名 OFF
    如果这样好象自动编号就没什么意义了吧?
      

  5.   

    呵呵,那你认为用什么方法比较好呢?比如实现
    insert into table (toid,name) value (id*param,'good')
    其中id为自动生成的编号,param实在程序中求出的
      

  6.   

    你可以试试这样:
    dbcc checkident(你的表名,reseed,15) --重新置位你的表中identity屬性的字段,让下一个值从16开始。
      

  7.   

    开始我是select max(id)+1作为下一条要插入记录的id号的,但是当我闪出最后几条记录时,出现了问题!
    要不我可不可以在insert语句后面加一个update语句?这样可以碰到并发问题,不过用触发器好像也不是很容易解决
      

  8.   

    dbcc checkident(你的表名,reseed,select max(id) from 我的表名)可以这样吗?
      

  9.   

    我不用qq和msn的。你可以
    insert into table1 (toid,name) value (param,'good')在触发器
    update table1
    set toid=id*toid
    from table1,inserted 
    where table1.id=inserted.id
      

  10.   

    写错了:
    update table1
    set toid=inserted.id*inserted.toid
    from table1,inserted 
    where table1.id=inserted.id