Я пишу сценарий обновления db, который в основном извлекает текущий номер версии из базы данных, а затем создает несколько хранимых процедур, если версия действительна. Если текущая версия не соответствует ожидаемой версии, она должна пропустить выполнение кода.Условно создайте хранимую процедуру с использованием TSQL
Однако я столкнулся с проблемой при написании сценария, потому что 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
Может кто-нибудь пролить некоторый свет на это?
Кажется, что это хорошо. Попробуем. Благодаря! – user1928346