如果满足条件,则更改存储过程

Mat*_*att 7 t-sql sql-server stored-procedures

如果条件存在,我希望更改存储过程.如果条件不满足,我想保留存储过程,因此drop/create实际上不是一个选项.

试图将ALTER PROC的内容放在IF块中会给我带来错误.有什么想法吗?

gbn*_*gbn 6

IF (condition)
  EXEC ('ALTER PROC ...')
Run Code Online (Sandbox Code Playgroud)

ALTER/CREATE PROC必须是批处理中的第一个,所以这是唯一的方法.除非你这样做

IF NOT (condition)
   RAISERROR('abort connection with high severity', 20, 1)
GO
ALTER PROC ...

GO
Run Code Online (Sandbox Code Playgroud)