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

在创建存储过程前怎么判断该过程是否存在?我写好了但报错
在创建存储过程前怎么判断该过程是否存在?我写好了但报错,如下。如果不加第一行,是没有问题的。

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'。



------解决方案--------------------
SQL code

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