我以前用的是access,现在有一套软件需要改成网络版,准备用sql server 2000,程序中需要将A表的数据库提取出来,经过修改之后再插入到B表中,单机版可以直接插入后再修改、保存。但是如果是网络版的话,就存在一个并发控制的问题,因此我想到了用临时表,也就是说先将A表提出插入到临时表中,修改后再插入到B表中,如果有多个用户同时操作,就以硬盘号作为区别标志。但我有个疑问,存储过程中首先要创建临时表,如果多个用户同时调用这个存储过程的话,(多个用户创建同一个临时表),会不会报错?最先调用存储过程的用户即创建临时表的用户如果先退出程序,那这个临时表会不会丢失呢?

解决方案 »

  1.   

    如果是临时表,不存在多用户的问题.临时表只对当前用户的这次会话起作用.例如:
    临时#temp是用户A创建的,只对用户A负责.
    同时.
    用户B创建一个临时表#TEMP,虽然同名,但只对用户B负责.
      

  2.   

    临时表只和当前SESSION有关, 可以用。 
    但觉得你所说的并发问题, 不是用临时用就可以解决的。
    首先表A, 可以加(NOLOCK) , 表B, 数据量大的话, 2000,还是多建点表。 比如 按用户建表什么的。