DacDeployOptions DeployeDatabaseInSingleUserMode, кажется, не имеет никакого эффекта

Я пытаюсь выполнить развертывание с использованием DacFx, и мне нужно перевести базу данных в однопользовательский режим, чтобы никто (кроме контекста обновления dac) не мог обновить базу данных.

_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);

Результирующий сценарий имеет одного пользователя в начале и многопользовательского в конце. Есть ли какая-то причина, по которой при выполнении Deploy неправильно используется параметр DeployDatabaseInSingleUserMode, как и следовало ожидать? В конце дня мне просто нужно убедиться, что во время этого обновления не может произойти обновление базы данных - если есть другой способ (кроме однопользовательского), тогда я открыт для предложений.

Я также попытался сгенерировать \ выполнить сценарий, но я боюсь, что сценарий может стать слишком большим (плюс есть проблемы с использованием $(DatabaseName) в сценарии, что означает, что мне придется помассировать его перед его фактическим выполнением),

Вопрос об отношениях: Публикация dacpac в однопользовательском режиме с использованием Microsoft.SqlServer.Dac.DacServices

Спасибо большое.

1 ответ

Решение

Это было легко - мой SSDT (инструменты данных SQL-сервера) нуждался в обновлении. После обновления до последней версии (11.1.50717.0) настройка начала работать.

Другие вопросы по тегам