日期:2014-05-17  浏览次数:20694 次

SQLSERVER存储过程如何先DROP再CREATE
1.在存储过程中,打算先DROP再CREATE(重新编译用)
  但是会出错,提示CREATE必须是最初的声明,要怎么写呢?

2.如果先DROP再CREATE,那么第一次执行的时候会不会出错。
  就是在存储过程还不存在的时候去DROP会不会出错。



DROP PROCEDURE dbo.IF_Aggregate_Common_SP
CREATE PROCEDURE dbo.IF_Aggregate_Common_SP
.
.
.
END

------解决方案--------------------
没有,drop 当然报错。可以先判断一下
------解决方案--------------------
if object_id('dbo.IF_Aggregate_Common_SP','p') is not null
drop proc dbo.IF_Aggregate_Common_SP 
go

create proc dbo.IF_Aggregate_Common_SP 
xxxx

------解决方案--------------------
你首先判断一下存储过程是否存在,存在则删除然后重建。

--判断是否存在存储过程的语句
if OBJECT_ID('procName') is not null drop proc procName go