我有以下powershell脚本来生成一个脚本来删除外键,使用SMO($scripter是一个Scripter对象,$db是一个数据库对象):
$scripter.Options.ScriptDrops = $true;
$scripter.Options.DriForeignKeys = $true;
$scripter.Options.DriChecks = $true;
$dbObjCollection = @();
foreach($tb in $db.Tables)
{
$dbObjCollection += $tb.Checks;
$dbObjCollection += $tb.ForeignKeys;
}
foreach ($dbObj in $dbObjCollection)
{
$smoObjects = @();
$smoObjects += $dbObj.Urn;
if ($dbObj.IsSystemObject -eq $false)
{
$sc = $scripter.EnumScript($smoObjects);
}
}
但它不起作用;没有数据写入 Scripter 对象的 FileName 属性中指定的文件。
谁能提供有关如何设置 Scripter 对象以仅为外键生成 drop 的指导,以及将哪些对象传递给 Scripter 对象以实现这一点?