表A:
eqid           eqname2001           张三(0002001)
2002           李石(0002002)
2003           王五(0002003)
................
其中eqid为主键

如上面的表,所有的eqname都是名称+编号,其中,编号为000+上一条的eqid+1,问题:如果两个人同时操作这个页面,则编号可能取得一样,在插入时eqname可能重复,要如何操作才能避免重复呢?????

解决方案 »

  1.   

    --锁定数据库的一个表 
    select col1 from 表 (tablockx) where 1=1 
      

  2.   

    写一个函数 生成这种号,然后作为缺省绑定在eqid 列上这个在坛里有例子,你自己找找
      

  3.   

    不是主键重复了,是eqname 可能重复,如
    eqid          eqname 2001          张三(0002001) 
    2002          李石(0002002) 
    2003          王五(0002002) 
    其中,2002可能是没插入表之前有两个人同时操作造成的
      

  4.   

    不是主键重复,而是eqname 有重复。如 
    eqid          eqname 2001          张三(0002001) 
    2002          李石(0002002) 
    2003          王五(0002002) 
    其中,2002可能是没插入表之前有两个人同时操作造成的 
      

  5.   

    插入时处理一下insert into table(eqid, eqname) values(@id, '名字(000' + cast( @id, varchar) + ')')
      

  6.   

    表A: eqid            eqname 2001          张三(0002001)2002          李石(0002002) 2003          王五(0002003) ................ 其中eqid为主键 。如上面的表,所有的eqname都是名称+编号,其中,编号为000+上一条的eqid+1,问题:有一个页面,页面上有一个TreeView,上面有是有名称,如张三,李石等,此时,如点击上面的张三,则生成张三(000200X)形式的数据,但是,如果两个人同时操作这个页面,则编号可能取得一样,在插入时eqname可能重复,要如何操作才能避免重复呢?????
    如果在页面有一个文本框,点击TreeView下面的文字就在文本框中显示张三(000200X)形式,可能有重复