使用Microsoft.SqlServer.SMO创建Alter存储过程sql脚本

本文关键字:存储过程 sql 脚本 Alter 创建 Microsoft SqlServer SMO 使用 | 更新日期: 2023-09-27 18:19:20

下面的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",但这似乎不太优雅…

使用Microsoft.SqlServer.SMO创建Alter存储过程sql脚本

下面的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传递给下面的命令会创建一个alter Header:

$proc.ScriptHeader($true)