В MS SQL Server Management Studio 2005:
Если для параметра Инструменты | Параметры | Сценарии | «Включить, ЕСЛИ НЕ СУЩЕСТВУЕТ» установлено значение true, изменение хранимой процедуры создаст странный сценарий, который даже не работает. Это выглядит примерно так: (для краткости используется многоточие)
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS [...]
BEGIN
EXEC dbo.sp_executesql @statement = N'
ALTER procedure [dbo].[p_Procedure]
[...]
'
END
Это, очевидно, не работает, потому что единственный способ вызывать инструкцию ALTER, это если хранимая процедура НЕ существует.
Вопрос, таким образом: есть ли способ изменить этот сгенерированный код ? Где-то есть шаблон (кажется, это не связано со сборкой в инструментах шаблонов)?
(Небольшое объяснение этому поведению: создание сценария оператора CREATE генерирует тот же код, в котором имеет смысл использовать IF NOT EXISTS)