有几个存储过程时一起放在.sql文件里的,手动执行时一般一次行执行,在我这的数据库中执行是可以的,但在客户那边是第一个存储过程没有执行(同样的slqserver2000英文企业版),导致报错(后面有个存储过程是以来于第一个存储过程的返回值),奇怪了,为什么后面几个可以运行。

解决方案 »

  1.   

    有几个存储过程时一起放在.sql文件里的,手动执行时一般一次行执行,在我这的数据库中执行是可以的,但在客户那边是第一个存储过程没有执行(同样的slqserver2000英文企业版),导致报错(后面有个存储过程是以来于第一个存储过程的返回值),奇怪了,为什么后面几个可以运行。--看是什么错,
    这个过程在DB中有吗
      

  2.   

    有几个存储过程时一起放在.sql文件里的,手动执行时一般一次行执行,在我这的数据库中执行是可以的,但在客户那边是第一个存储过程没有执行(同样的slqserver2000英文企业版),导致报错(后面有个存储过程是以来于第一个存储过程的返回值),奇怪了,为什么后面几个可以运行。---用语句判断每个存储过程执行是否成功,判断一下,成功则进行下一步,否则返回.
      

  3.   

    用@@ERROR 查看一个存储过程的成功或失败 ,再决定是否执行下面存储过程execcute sp1IF (@@ERROR = 0)
       execcute sp2
    @@ERROR 通常用于表示存储过程的成功或失败。整型变量初始化为 0。完成每个 Transact-SQL 语句后,都要测试 @@ERROR 是否为 0。如果 @@ERROR 不是 0,将被存储在变量中。存储过程然后在 RETURN 语句中返回变量。如果过程中的 Transact-SQL 语句都没有错误,变量保持为 0。如果一个或多个语句生成错误,则变量包含最后的错误号。