У мене є сценарій 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
...
Як я можу додати перевірку на наявність збереженої процедури та створити її, якщо вона не існує, але змінити її, якщо вона існує?