日期:2014-05-18  浏览次数:20375 次

创建存储过程语句的错误
我使用一下的语句创建存储过程,为什么会不对?如果要实现我想要的结果,该怎么写?谢谢!
if   exists(select   *   from   sysobjects   where   name= 'prHello '   and   type= 'p ')
    begin
        alter   procedure   prHello
        as
        select   'alter '
    end
else
    begin
        create   procedure   prHello
        as
        select   'create '
    end

错误提示:
服务器:   消息   156,级别   15,状态   1,行   3
在关键字   'procedure '   附近有语法错误。
服务器:   消息   156,级别   15,状态   1,行   9
在关键字   'procedure '   附近有语法错误。

------解决方案--------------------
if exists(select * from sysobjects where name= 'prHello ' and type= 'p ')
begin
exec( '
alter procedure prHello
as
select ' 'alter ' ' ')
end
else
begin
exec( 'create procedure prHello
as
select ' 'create ' ' ')
end

------解决方案--------------------
用动态实现吧,一个批处理中不能与别的语句组合
if exists(select * from sysobjects where name= 'prHello ' and type= 'p ')
begin

exec( 'alter procedure prHello
as
select ' 'alter ' '
end ')
end
else
begin
exec( 'create proc prHello
as
select ' 'create ' ' ')
end