在创建存储过程前怎么判断该过程是否存在?我写好了但报错,如下。如果不加第一行,是没有问题的。if not exists(select 1 from sysobjects where name='Cx_showDk' and type='p')
begin   CREATE PROCEDURE Cx_showDk
    @Pzh nvarchar(20)
   AS
    ……end
提示:
服务器: 消息 156,级别 15,状态 1,行 4
在关键字 'PROCEDURE' 附近有语法错误。
服务器: 消息 137,级别 15,状态 1,行 12
必须声明变量 '@Pzh'。
服务器: 消息 137,级别 15,状态 1,行 13
必须声明变量 '@Pzh'。
服务器: 消息 137,级别 15,状态 1,行 14
必须声明变量 '@Pzh'。
服务器: 消息 137,级别 15,状态 1,行 15
必须声明变量 '@Pzh'。

解决方案 »

  1.   


    if object_id('存储过程名字','P') is not null
    drop proc 存储过程名字
    CREATE PROCEDURE Cx_showDk
    @Pzh nvarchar(20)
      AS
      ……
      

  2.   

    谢谢楼上,这样操作报错:服务器: 消息 111,级别 15,状态 1,行 5
    'CREATE PROCEDURE' 必须是批查询中的第一条语句。
      

  3.   


    if object_id('存储过程名字','P') is not null
    drop proc 存储过程名字
    go
    CREATE PROCEDURE Cx_showDk
    @Pzh nvarchar(20)
      AS
      ……
    go