0
Powershell経由でMSSQL DB用のインポートスクリプトを生成します(this questionに関連しています)。 私はこれをやってみました:Powershell SMO:このメソッドはスクリプトデータをサポートしていません
#Set-ExecutionPolicy RemoteSigned
$DB_NAME = "<<dbName>>"
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | Out-Null
$srv = new-object "Microsoft.SqlServer.Management.SMO.Server" "<<server>>"
$conContext = $srv.ConnectionContext
$conContext.LoginSecure = $false
$conContext.Login = "<<user>>"
$conContext.Password = "<<password>>"
$srv = new-object Microsoft.SqlServer.Management.Smo.Server($conContext)
$srv.SetDefaultInitFields([Microsoft.SqlServer.Management.SMO.View], "IsSystemObject")
$db = $srv.databases[$DB_NAME]
$scripter = new-object "Microsoft.SqlServer.Management.Smo.Scripter" $srv
$scripter.Options.ScriptSchema = $false
$scripter.Options.ScriptData = $true
$scripter.Options.ScriptDrops = $false
$scripter.Script($db)
しかし、これはエラーをスロー実行:
"This method does not support scripting data"
私も、出力ファイルのオプションを設定しようとしたが、これは何も変わりません。
私が間違ったことを教えてもらえますか?
ありがとうございます!
こんにちは、あなたの偉大な答えてくれてありがとう!これは私の問題を解決できるように聞こえる。残念ながら今私はこのエラーが表示されます: "EnumScript" 1引数(En): "スクリプトはサーバー 'xxx'に失敗しました。" ... + $ scripter.EnumScript(@($ db.Tables) ) + ~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) []、MethodInvocationException + FullyQualifiedErrorId:FailedOperationExceptionこの例外の原因を知っていますか?ご挨拶! –
いいえ、 'EnumScript'自体とは何の関係もありません - このコードを検証したため、到達可能なデータベースインスタンスに対して動作します。 –
こんにちは - 私は何がうまくいかなかったかfugured:私は$ scripter.Options.ScriptSchema = $ falseを設定するために使用したいが、私はこのエラーが発生するスキーマなし。データをスクリプト化する方法はありますか?そして、私は外部キーとの競合がないようにテーブルを注文する必要があります。現在、テーブルはアルファベット順にスクリプト化されていますが、空のDBにインポートするとエラーが発生します。 –