作为我的集成策略的一部分,我运行了一些 SQL 脚本来更新数据库。所有这些脚本做的第一件事就是检查它们是否需要运行,例如:
if @version <> @expects
begin
declare @error varchar(100);
set @error = 'Invalid version. Your version is ' + convert(varchar, @version) + '. This script expects version ' + convert(varchar, @expects) + '.';
raiserror(@error, 10, 1);
end
else
begin
...sql statements here...
end
效果很好!除非我需要添加存储过程。“create proc”命令必须是一批sql命令中唯一的命令。在我的 IF 语句中添加“create proc”会导致此错误:
'CREATE/ALTER PROCEDURE' 必须是查询批处理中的第一条语句。
哎哟! 如何将 CREATE PROC 命令放入我的脚本中,并仅在需要时才执行?