Tengo un script SQL que debe ejecutarse cada vez que un cliente ejecuta la funcionalidad de "gestión de bases de datos". El script incluye la creación de procedimientos almacenados en la base de datos del cliente. Es posible que algunos de estos clientes ya tengan el procedimiento almacenado al ejecutar el script, y algunos no. Necesito agregar los procedimientos almacenados que faltan a la base de datos del cliente, pero no importa cuánto intente doblar la sintaxis T-SQL, obtengo
CREATE / ALTER PROCEDURE 'debe ser la primera instrucción en un lote de consulta
Lo he leído antes de crear trabajos, pero no me gusta hacerlo de esa manera.
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'MyProc')
DROP PROCEDURE MyProc
GO
CREATE PROCEDURE MyProc
...
¿Cómo puedo agregar una verificación de la existencia de un procedimiento almacenado y crearlo si no existe, pero modificarlo si existe?