又一个存储过程sp1,返回值每次让表的某个字段自增1,在两个server上执行,但是结果不一样:
server1上每次自增1,而server2每10条记录+1,这种问题可能是什么原因?

解决方案 »

  1.   

    过程脚本是怎样的,怎么执行的,server1和server2测试的表有什么不同。
      

  2.   

    两台服务器 SQL版本不一样吧。
      

  3.   

    server1和server2测试环境一样吗
      

  4.   

    sql server 一样,不过这个存储过程操作表时,加了个hangsuo,rowlock,会跟这个锁的时间
    长短有关系么,怎么能看到这两个表有什么不一样的地方,理论上他们应该是完全一致的
      

  5.   

    数据库里能不能让sql停几分钟再接着往下执行
      

  6.   

    这个存储过程是这样写:
    update t1 
    with (rowlock)
    set value=isnull(replicate('0',datalength(select value from t1 where idtype = @ittype)-datalength(convert(varchar(10),(select convert(numeric(10),value)+1 from t1 where idtype=@idtype))),'')+convert(varchar(10),convert(numeric(10),value)+1)
    where idtype = @idtype
     declare @Myid char(5)
    declare @icount int
    set @icount = 1
    declare @pt table
    (pdid char(2) null)
    while @icount<=10
    begin
       exec dbo.getNo 'type',@myid output
       insert into @pt values (@myid)
    endselect * from @pt 这段脚本在一个server上执行后@pt 的id值是递增的,这是正确的,但是在另一个server上出来的id 值全是一样的,这是不是因为数据的问题,如果是数据的问题该怎么办?这两个server的环境应该是一样的,一个是另一个的备份