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

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


person Mani5556    schedule 12.05.2016    source источник


Ответы (1)


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

person Mani5556    schedule 12.05.2016