2016-05-12 6 views
0

DacFxを使用してデプロイを実行しようとしており、データベースをシングルユーザーモードにして、誰も(dac更新コンテキスト以外)データベースを更新できないようにする必要があります。DacDeployOptions DeployeDatabaseInSingleUserModeが無効になっているようです。

_deployOptions = new DacDeployOptions 
      { 
       BlockOnPossibleDataLoss = false, 
       IncludeCompositeObjects = true, 
       IncludeTransactionalScripts = true, 
       DropConstraintsNotInSource = deployConfig.DropConstraintsNotInSource, 
       DropIndexesNotInSource = deployConfig.DropIndexesNotInSource, 
       DropDmlTriggersNotInSource = false, 
       DeployDatabaseInSingleUserMode = true 
      }; 

DacServices.Deploy(dacpac, _dbName, true, _deployOptions); 

デプロイメントプロセス(確認済み)は、データベースをシングルユーザーモードにしません。ただし、私が使用する場合

var script = DacServices.GenerateDeployScript(dacpac, _dbName, _deployOptions); 

結果のスクリプトは、最初に設定された単一のユーザーと、最後に複数のユーザーが設定されています。 DeployDatabaseInSingleUserMode設定を正しく実行しないと、Deployを実行しても期待どおりの理由がありますか?最後に、このアップデート中にデータベースの更新が行われないようにする必要があります。別の方法(シングルユーザー以外)がある場合は、私は提案を公開しています。

私はスクリプトの実行を試みたことがありますが、スクリプトが大きすぎることに恐れています($(DatabaseName)がスクリプトで使用されているという問題があります。それを実際に実行する)。

関係質問: Publish dacpac in single user mode using Microsoft.SqlServer.Dac.DacServices

どうもありがとうございました。

答えて

0

これは簡単だった - 私のSSDT(SQLサーバデータツール)はアップデートが必要でした。最新バージョン(11.1.50717.0)にアップデートした後、設定が有効になりました。

関連する問題