环境 SQL2012如题 我想用一个存储过程调用多个存储过程
试了很多次,都只读到第一个,第二个以后读不到。
是不是不能这么用吗,请各位大大赐教~sql存储

解决方案 »

  1.   

    第一个的@RETURN是不是永远等于1
      

  2.   

    你若想输出1、2、3的返回值,不要用return,return在很多程序里面都是结束操作
    换成select 1、2、3
      

  3.   

    要看你的代码了,很不厚道地猜测一下,output和retrun你分不清楚。
      

  4.   

    szm341>我想要的结果是
    正常情况  三个存储过程全部通过,返回一个正常值,0之类的
    异常情况  如果第一个出现错误的话,返回 1 ,结束操作 
      

  5.   

    Vidor>我刚学SQL不久,好多东西都还摸不清楚,还请大大多指教啊
      

  6.   

    回复别人的时候点引用~
    我觉得你在第一句存储过程执行之前可以先赋值一下,set @return=10000
    看你执行第一句存储过程后@return变成什么了
      

  7.   


    谢谢,第一次发帖,好多不懂
    不管是第一个还是第二个,第三,我都在它们内部赋值了,正常返回0,异常返回1,2,3拿第一个来说的话,如果执行正常,返回0,跳过if,执行第二个存储
    执行异常的话,返回1,进入if,再返回1,结束
      

  8.   

    你不用解释这些,我们都能看明白,就如#4所说的,你的这三个存储过程中定义参数为output类型了吗?
      

  9.   

    可以调用多个存储过程,你丫把return换成set
      

  10.   

    set @return=1
    set @return=2
    set @return=3
      

  11.   

    网上垃圾信息远远多于有价值信息,你在那个奇葩地方查到的,我组团观光一下。查你的ouput参数,正常和异常(return之前)是否用SET赋值了。
    真捉鸡,肯定第一个@RETURN OUTPUT永远等于1了嘛。
      

  12.   

    赋值了,正常是0,异常是1
    异常我明白,但是正常的话应该可以执行第二个呀。
    就算第二个异常我也应该能够得到一个异常值啊。
    可是现在DB只有第一个的结果记录,没有第二个以及之后的。顺便给你发我看到的那个网站,你可以去看看
    http://social.technet.microsoft.com/Forums/ja-JP/sqlserverja/thread/44e96fa8-ec76-4cb2-bd8d-29b522b71bc5
      

  13.   

    晕死,我这儿都说这么明白了,return是程序结束,要结束以下所有语句
      

  14.   

    不符合是跳过,符合不就结束了吗?
    这样,你把你的后两个存储过程的语句都注释,只执行第一个,然后输出@return你看是几,
    按你的描述的话肯定是1啊