В рамках моей стратегии интеграции у меня есть несколько сценариев SQL, которые выполняются для обновления базы данных. Первое, что делают все эти скрипты, это проверяет, нужно ли им запускаться, например ::1001
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. Помещение «create proc» в мой оператор IF вызывает эту ошибку:
'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.
Ой! Как поместить команду CREATE PROC в мой скрипт и выполнять ее только при необходимости?