2015-06-25 30 views
5

我想在單用戶模式下發布dac pac,以防止在數據庫升級時進行不必要的數據庫更改。爲此,我使用了Microsoft.SqlServer.Dac.DacServices中的部署功能。使用Microsoft.SqlServer.Dac.DacServices在單用戶模式下發布dacpac

該函數有一個參數DacDeployOptions選項。我在該選項中設置了DeployDatabaseInSingleUserMode = true。即使設置爲true,我也可以在dacpac部署時執行數據庫操作。

有什麼我失蹤?或者有沒有其他的方法來實現這一點。

幫助將被讚賞!

+3

我有看到別人類似的問題 - 你可以生成腳本和看看它是否在頂部附近有一個ALTER DATABASE SET SINGLE_USER ...? –

回答

0

您正在使用哪個版本的DacFX?如果這不是最新的,那麼最好先獲得最新的,因爲很多較老的人不太瞭解你指定的選項。

或者,你可以這樣做(這是我做了什麼,而不是試圖讓DacFX正常工作,

  ServerConnection connection = new ServerConnection(ServerName); 
      Server sqlServer = new Server(connection); 
      Database QADatabase = sqlServer.Databases[DatabaseName]; 
      QADatabase.DatabaseOptions.UserAccess = DatabaseUserAccess.Single; 
      QADatabase.Alter(TerminationClause.RollbackTransactionsImmediately); 
      QADatabase.Refresh(); 

//DACPAC logic goes here 

      QADatabase.DatabaseOptions.UserAccess = DatabaseUserAccess.Multiple; 
      QADatabase.Alter(TerminationClause.RollbackTransactionsImmediately); 
      QADatabase.Refresh(); 
相關問題