Como crio condicionalmente um procedimento armazenado no SQL Serve

omo parte da minha estratégia de integração, tenho alguns scripts SQL que são executados para atualizar o banco de dados. A primeira coisa que todos esses scripts fazem é verificar se eles precisam ser executados, por exemplo

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

Funciona bem! Exceto se eu precisar adicionar um procedimento armazenado. O comando "create proc" deve ser o único comando em um lote de comandos sql. Colocar um "create proc" na minha instrução IF causa este erro:

'CREATE/ALTER PROCEDURE' must be the first statement in a query batch.

Ouch! Como faço para colocar o comando CREATE PROC no meu script e executá-lo apenas se for necessári

questionAnswers(10)

yourAnswerToTheQuestion