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