我正在编写一个数据库更新脚本,它基本上从数据库中检索当前版本号,然后如果版本有效,则创建一些存储过程。如果当前版本与预期版本不匹配,则应跳过执行代码。
但是,当我编写脚本时遇到了一个问题,因为 CREATE PROCEDURE 必须是批处理中的第一个语句,因此我无法在 create procedure 语句之前插入 if .. else 语句。
我也尝试过使用 GOTO 但无济于事,因为 GOTO 不跨越多个批次。同样的事情适用于 RETURN 和 RAISEERROR - 其余代码仍将执行。
示例脚本:
IF @Version = '1.0' --doesn't work
BEGIN
CREATE PROCEDURE dbo.uspCreateAccount
AS BEGIN
--The rest of the code goes here
END
END
任何人都可以对此提供一些见解吗?