У меня есть сценарий SQL, который должен запускаться каждый раз, когда клиент выполняет функцию «управления базой данных». Сценарий включает в себя создание хранимых процедур в клиентской базе данных. Некоторые из этих клиентов могут уже иметь хранимую процедуру при запуске сценария, а некоторые - нет. Мне нужно добавить отсутствующие хранимые процедуры в клиентскую базу данных, но не имеет значения, сколько я пытаюсь изменить синтаксис T-SQL, я получаю
CREATE / ALTER PROCEDURE 'должно быть первым оператором в пакете запроса
Я читал это удаление перед созданием работ, но мне не нравится делать это таким образом.
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'MyProc')
DROP PROCEDURE MyProc
GO
CREATE PROCEDURE MyProc
...
Как добавить проверку на наличие хранимой процедуры и создать ее, если она не существует, но изменить ее, если она существует?