以下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.Item("<StoredProcedure>")
$proc.Script() > testScript.sql
是否有使用类似方法创建“Alter”,即更改脚本选项? 我正在引用SQL Server 2005环境。
我总是可以添加一个声明来用“ALTER PROC”替换“CREATE PROC”,但这似乎不太优雅......
答案 0 :(得分:3)
以下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)