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