Как создавать сценарии ALTER вместо сценариев CREATE, используя SMO (объект управления сервером) - PullRequest
4 голосов
/ 01 июля 2010

Я использую классы Microsoft.SqlServer.Management.Smo для создания сценариев SQL для хранимых процедур, таблиц, представлений и т. Д. Я делаю это для помещения их в систему контроля версий.

Вместо скриптов CREATE для хранимых процедур, как я могу получить для них скрипты ALTER? Есть ли параметр / опция в свойствах ScriptingOptions '?

Ответы [ 5 ]

2 голосов
/ 22 июля 2011
  1. Используйте обычные скриптовые опции и инструменты для SMO c #
  2. тогда просто используйте.

    foreach (string line in script)
                {
                    string l = line.Replace("CREATE FUNCTION", "ALTER FUNCTION");
                }
    
  3. Та Да. :).

1 голос
/ 26 июля 2010

Взгляните на DBSourceTools .

Это инструмент с графическим интерфейсом для записи всех объектов в базе данных SQL на диск, в частности, для контроля исходного кода баз данных.использует SMO.

1 голос
/ 09 июля 2010

Кажется, нет никакой настройки для сценариев ALTER.Свойство со значением ScriptingOptions.ScriptDrops, равным true, создает операторы удаления.Недостатком этого является то, что разрешения придется переназначить.

Закрытие этого вопроса.

0 голосов
/ 03 сентября 2015

В классе StoredProcedure есть метод, который создает операторы ALTER.

https://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.storedprocedure.scriptheader(v=sql.120).aspx

Использование

var sprocHeader = sproc.ScriptHeader(forAlter: true);
var sprocBody = sproc.TextBody;
0 голосов
/ 01 июня 2011

Я использую это в сравнении между серверами.toSP - это текстовое тело SP.Если на сервере «TO» его нет, я делаю Create (), иначе это Alter () для загруженной StoredProcedure spT

If toSP = "" Then  ' Empty
    spT.Create()
Else
    spT.Alter()
End If
...