SQL Studio - ошибки сценария «Изменить хранимую процедуру» - PullRequest
1 голос
/ 17 декабря 2008

В 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)

1 Ответ

0 голосов
/ 17 декабря 2008

Есть некоторые проблемы по этой теме на сайте MS-Feedback. Вот один из них:

https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=260519

Вот один комментарий по этому вопросу (внизу страницы, на которую ссылается выше):

В SQL2000 подход был, если существует, DROP и CREATE. Это worekd безупречно и охватывает все случаев. Он носился так хорошо, что мы построили наше развертывание от этого сценария модель. Так как SQl2005 вошел в наш мир у нас был ручной, громоздкий обходные пути для замены автоматизированных сценарии, которые были потеряны при переходе к SQL2000.

Пожалуйста, прочитайте Если существует, DROP с последующим СОЗДАТЬ подход. это было Великий путь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...