с помощью Microsoft.SqlServer.SMO для создания сценария изменения хранимой процедуры sql Script? - PullRequest
3 голосов
/ 04 января 2012

Кажется, что следующий скрипт powershell успешно генерирует скрипт «Create» для хранимых процедур

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
$srv = new-object Microsoft.SqlServer.Management.Smo.Server("<SERVER>")
$db = $srv.Databases.Item("<Database>")
$proc = $db.StoredProcedures.Item("<StoredProcedure>")
$proc.Script() > testScript.sql

Есть ли способ создать «Alter» с использованием аналогичного подхода, то есть изменить параметры сценариев? Я ссылаюсь на среду SQL Server 2005.

Я всегда мог добавить инструкцию, чтобы заменить «CREATE PROC» на «ALTER PROC», но это кажется не элегантным ...

1 Ответ

3 голосов
/ 10 апреля 2012

Кажется, мне подходит следующий скрипт Powershell:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null 
$srv = new-object Microsoft.SqlServer.Management.Smo.Server("<SERVER>") 
$db = $srv.Databases.Item("<DATABASE>") 
$proc = $db.StoredProcedures | ?{ $_.Name -eq "<STORED PROC>"} 
$retval = $proc.ScriptHeader($true) + $proc.TextBody 
$retval > testScript.sql

Обратите внимание, что передача true следующей команде создает альтернативный заголовок:

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