在SQL查询分析器中执行是没有问题,但是在ADOQUERY中执行生成过程产生问题。
比如:
   在Adoquery1中SQL语句为:
   CREATE PROCEDURE  A1
   ......
   CREATE PROCEDURE  A2
   ......
   CREATE PROCEDURE  A3
   ......
           .
           .
           .
   CREATE PROCEDURE  A20
   ......
执行时就产生错误,说在CREATE PROCEDURE附近有错误!是不是不能多个存储过程在Adoquery中执行,只能一个一个执行。请指教

解决方案 »

  1.   

    一个存储过程调用一次, CREATE 要求是批处理语句中的第1条, 而GO是做为批处理的分隔符, 但这个GO不是SQL语句, 只是微软的工具能识别的一个分隔符, 所以ADOQUERY不支持.
      

  2.   

    zjcxc(邹建) 不是SQL版的老大, 现在也用D了.zjcxc(邹建) 说得对.
      

  3.   

    一般我们做的是工程,面对是单个客户,自然由我们给客户去安装,存储过程导入到数据库是通过在SQL查询分析器中执行脚本导入或恢复备份文件或直接拷贝数据库文件等。但,假如我们做的是产品,一般安装都是由用户自行安装,这时,存储过程导入不可能让用户到SQL查询分析器中去执行脚本导入,所以在制作安装程序要能导入存储过程,但现在我碰到在ADOQUERY中放多个过程执行导入数据库会产生错误(一个过程是可以的),是不是我只能一个个执行,有没有别的方法?请继续指教!
      

  4.   

    分开excute或者调用isql命令参数
      

  5.   

    你贴一两个store procedure 出来看看.
      

  6.   

    如一楼所言,一个存储过程调用一次, CREATE 要求是批处理语句中的第1条, 而GO是做为批处理的分隔符, 但这个GO不是SQL语句, 只是微软的工具能识别的一个分隔符, 所以ADOQUERY不支持.
    例如:
    create procedure pro1 @xh int as select * from baseinfo where xh=@xh 
    go
    create procedure pro2 @sh int as select * from baseinfo where sh=@sh 
    在SQL查询分析器中可以执行,但如果去掉go,则不能执行,而ADOQUERY不支持GO,这和你的存储过程并没有直接关系,所以从这个意义上说,你想直接在adoquery中执行全部是create procedure的批处理语句,是不可以的。分开执行吧。