是否在sp_a之后有其他步骤又对table3之前的表进行了 truncate操作?

解决方案 »

  1.   

    没有。这几张表仅在sp_a中使用到了。并且当我在回到窗口1中执行sp_a时,table3之前的表insert操作还是没有执行。是没有执行insert,而不是insert后又被truncate或delete了。这是事件探查器中显示的。
      

  2.   

    没有。这几张表仅在sp_a中使用到了。并且当我在回到窗口1中执行sp_a时,table3之前的表insert操作还是没有执行。是没有执行insert,而不是insert后又被truncate或delete了。这是事件探查器中显示的。
      

  3.   

    检查一下  insert into table1 select ...
    的语句,看select是否得到结果
      

  4.   

    没有。这几张表仅在sp_a中使用到了。并且当我在回到窗口1中执行sp_a时,table3之前的表insert操作还是没有执行。是没有执行insert,而不是insert后又被truncate或delete了。这是事件探查器中显示的。
      

  5.   


    哦,应该不是select没有结果集的问题在窗口2执行sp_all呢?
      

  6.   

    select可以得到结果的。因为在窗口2中单独执行sp_a时table3之前的表都是有记录的。不好意思,网络不好,害我回复了n次。
      

  7.   


    像是事务引起的问题。当不显示加上事务时,存储过程使用的是隐性事务,语句之间的事务是没有关联的,语句执行完后锁立刻就释放了。试下:
    CREATE procedure sp_all
    ASBEGIN TRANexe sp_1
    exe sp_2
    ......
    exe sp_nCOMMIT TRAN
      

  8.   

    加上BEGIN TRAN和COMMIT TRAN后还是这样,服务器也重启过了。为什么单独执执行sp_all也会这样呢?
      

  9.   

    查到原来是我的程序中的游标问题引起select出来没有数据,而非没有insert。感谢各位的帮助。