应尽量避免使用游标
可以尝试使用update配合case或临时表

解决方案 »

  1.   

    假设每一张进仓单中的货物是唯一的:insert 仓库(货物,进仓数)
      select 货物,0 from 进仓单 as d where 单号=1234567 and not exists(
        select * from 仓库 where 货物=d.货物)
    update c set 进仓数=进仓数-d.进仓数
      from 仓库 as c inner join 进仓单 as d on c.货物=d.货物
        where d.单号=1234567为什么允许“负的”进仓数?因为你只说要“还原”。如果进仓之后又被出仓,那么“还原有什么意义”等你来说明。
      

  2.   

    可以在程序中(如访问数据库的中间层)通过for循环访问单条数据啊,这样对单条数据进行操作就可以避免使用游标的啊.在数据库中应尽量避免cursor的使用,因为cursor会大大降低数据库的性能,确实要少使用.
      

  3.   

    各位高手看看我这个问题,不用游标怎么解决啊?非常感谢!http://expert.csdn.net/Expert/topic/2280/2280916.xml?temp=.9774439