Приложение уровня импорта данных не работает
Я получаю следующую ошибку при восстановлении резервной копии базы данных (.bacpac
файл) в мой локальный экземпляр SQL Server 2016.
НАЗВАНИЕ: Microsoft SQL Server Management Studio
Не удалось импортировать пакет.
Предупреждение SQL72012: объект [Azure_Data] существует в целевом объекте, но он не будет удален, даже если вы установили флажок "Создать операторы удаления для объектов, которые находятся в целевой базе данных, но отсутствуют в источнике".
Предупреждение SQL72012: объект [Azure_Log] существует в целевом объекте, но он не будет удален, даже если вы установили флажок "Создать операторы удаления для объектов, которые находятся в целевой базе данных, но отсутствуют в источнике".
Ошибка SQL72014: поставщик данных.Net SqlClient:
Сообщение 33161, уровень 15, состояние 1, строка 1
Основные ключи базы данных без пароля не поддерживаются в этой версии SQL Server.Ошибка SQL72045: Ошибка выполнения скрипта. Выполненный скрипт: CREATE MASTER KEY;
2 ответа
Это связано с разницей между SQL Azure и SQL Server 2016. Наличие главного ключа без пароля является функцией только Azure. Есть два способа решения этой проблемы.
1) Откройте.bacpac и удалите объект мастер-ключа, а также объект учетных данных. (Переименуйте.bacpac в.zip, разархивируйте, а затем просмотрите XML-файлы, внесите необходимые изменения, выполните архивацию и переименуйте обратно в.bacpac).
или же
2) добавьте шифрование пароля к главному ключу перед экспортом базы данных в.bacpac, используя следующее:ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = '<PasswordHere>';
Там гораздо проще решение сейчас. Загрузите обновление для SSMS... по крайней мере, версия 14.0.17277.0. Таким образом, вам не нужно играть с мастер-ключами или патчами BACPAC-файлов. Это намного проще.