本帖最后由 icecard 于 2010-09-28 22:14:22 编辑

解决方案 »

  1.   

    但是因为加了表锁,导致其它的select语句
    其他的select语句+nolock
      

  2.   

    select * from tb with(nolock)
      

  3.   

    nolock可以,但要注意脏读问题。
      

  4.   

    我觉得你这个问题是数据结构有问题  斩草要除根id EventId Content
    1 100 aaaa
    2 100 bbbb
    3 100 cccc
    ……
    1991 101 aaaa
    1992 100 xxxx
    1993 101 bbbb
    1994 101 cccc建议增加字段 OrderID  排序idid EventId Content OrderID
    1 100 aaaa   1
    2 100 bbbb   2
    3 100 cccc   3
      ……
    1991 101 aaaa   1
    1993 101 bbbb   2
    1994 101 cccc   3这样就保持了对应关系。
      

  5.   

    对了 。 我们的qq群号 34764783 asp.net(C#)开发<二>欢迎加入讨论  
     
      

  6.   

    insert into tab1
    select 101 as EventId,content  
    from tab1  
    where EventId=100
    order by id;
    批量插入的情况下肯定是加锁的,所以你所说的其他用户插入是不会存在的,
    如果在批量处理的时候允许用户进行select操作,那设置允许脏读就可以了
      

  7.   

    后来我再仔细想了一下,即使有其它用户插入了数据,这个对照表也没有问题,因为新插入的行不会得到真正的新旧ID的对照关系。
    Old_id new_id
    1 1991
    2 1993
    3 1994
    1992 null感谢大家的留言,这段时间一直忙工作,忘了来结贴,抱歉