使用Microsoft.SqlServer.Dac.DacServices以单用户模式发布dacpac
本文关键字:用户 模式 dacpac SqlServer Microsoft Dac DacServices 单用户 使用 | 更新日期: 2023-09-27 17:59:28
我想以单用户模式发布dac-pac,以防止在数据库升级时发生不必要的数据库更改。为此,我使用了Microsoft.SqlServer.Dac.DacServices.中的Deploy函数
该函数有一个参数DacDeployOptions选项。我已在该选项中设置了DeployDatabaseInSingleUserMode = true
。即使设置为true,我也可以在部署dacpac时进行数据库操作。
我缺什么了吗?或者有其他方法可以实现这一点吗。
我们将不胜感激!
您使用的是哪个版本的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();