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