Eu tenho um script SQL que precisa ser executado sempre que um cliente executa a funcionalidade "gerenciamento de banco de dados". O script inclui a criação de procedimentos armazenados no banco de dados do cliente. Alguns desses clientes já podem ter o procedimento armazenado na execução do script, e outros podem não ter. Eu preciso que os procedimentos armazenados ausentes sejam adicionados ao banco de dados do cliente, mas não importa o quanto eu tente dobrar a sintaxe do T-SQL, recebo
CREATE / ALTER PROCEDURE 'deve ser a primeira instrução em um lote de consulta
Eu li isso antes de criar trabalhos, mas não gosto de fazer dessa maneira.
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'MyProc')
DROP PROCEDURE MyProc
GO
CREATE PROCEDURE MyProc
...
Como posso adicionar a verificação da existência de um procedimento armazenado e criá-lo se ele não existir, mas alterá-lo se ele existir?