Я использую классы Microsoft.SqlServer.Management.Smo для создания сценариев SQL для хранимых процедур, таблиц, представлений и т. Д. Я делаю это для помещения их в систему контроля версий.
Вместо скриптов CREATE для хранимых процедур, как я могу получить для них скрипты ALTER? Есть ли параметр / опция в свойствах ScriptingOptions '?
тогда просто используйте.
foreach (string line in script) { string l = line.Replace("CREATE FUNCTION", "ALTER FUNCTION"); }
Та Да. :).
Взгляните на DBSourceTools .
Это инструмент с графическим интерфейсом для записи всех объектов в базе данных SQL на диск, в частности, для контроля исходного кода баз данных.использует SMO.
Кажется, нет никакой настройки для сценариев ALTER.Свойство со значением ScriptingOptions.ScriptDrops, равным true, создает операторы удаления.Недостатком этого является то, что разрешения придется переназначить.
Закрытие этого вопроса.
В классе StoredProcedure есть метод, который создает операторы ALTER.
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;
Я использую это в сравнении между серверами.toSP - это текстовое тело SP.Если на сервере «TO» его нет, я делаю Create (), иначе это Alter () для загруженной StoredProcedure spT
If toSP = "" Then ' Empty spT.Create() Else spT.Alter() End If