7

PowerShell では、Microsoft.SqlServer.Dac.DacServicesと Microsoft.SqlServer.Dac.DacDeployOptions を使用して、データベース DACPAC を展開/更新しています。私が抱えている問題は、パッケージに必要な SQLCMD 変数を設定する場所を見つけることです。

短縮サンプル

# Create a DacServices object, which needs a connection string 
$dacsvcs = New-Object Microsoft.SqlServer.Dac.DacServices "server=$sqlserver"

# Load dacpac from file
$dp = [Microsoft.SqlServer.Dac.DacPackage]::Load($dacpac) 

# Deploy options
$deployOptions = New-Object Microsoft.SqlServer.Dac.DacDeployOptions
$deployOptions.IncludeCompositeObjects = $true

これらを SqlPackage.exe で問題なく入力できることはわかっています。おそらくそれが私がすべきことです。しかし、ドキュメントや Web Grok のどこにも、SQLCMD 変数をオプションとして使用した DacServices の使用例を見つけることができません。SQLCMD 変数は、プロジェクトの DACPAC の必須パラメーターです。

4

2 に答える 2

10

$deployOptions.SqlCommandVariableValues プロパティでオプションを設定する必要があります。これは updateabase ディクショナリです。新しいディクショナリを割り当てることはできませんが、その中のキーと値のペアを更新できます。たとえば、変数「MyDatabaseRef」を「Database123」に設定するには、次を使用します

$deployOptions.SqlCommandVariableValues.Add("MyDatabaseRef", "Database123");

API リファレンスはこちらです。

于 2015-02-20T08:06:31.947 に答える