Сбой SQL Server bacpac при локальном импорте в последнем обновлении (операции с онлайн-индексацией могут выполняться только в корпоративной версии SQL Server)

#sql-server #azure-sql-database #sql-server-express #bacpac

#sql-сервер #azure-sql-database #sql-server-express #bacpac

Вопрос:

У меня есть база данных SQL Azure, и я подключаюсь к ней в среде SQL Server Management Studio. Я экспортирую приложение уровня данных, а затем импортирую приложение уровня данных для .bacpac файла, чтобы получить его в свою локальную базу данных. Или я использую задачи — Развертывание базы данных.

В любом случае, это работало до недавнего времени, и теперь я получаю сообщение об ошибке

Операции с онлайн-индексацией могут выполняться только в корпоративной версии SQL Server

Я использую версии SQL Server Management Studio, приведенные ниже (из справки — About). Есть какие-нибудь идеи?

 SQL Server Management Studio                    15.0.18369.0
SQL Server Management Objects (SMO)             16.100.46041.41
Microsoft Analysis Services Client Tools        15.0.19342.0
Microsoft Data Access Components (MDAC)         10.0.19041.1
Microsoft MSXML                                 3.0 6.0 
Microsoft .NET Framework                        4.0.30319.42000
Operating System                                10.0.19041
 

Комментарии:

1. Я хотел добавить комментарий с полным сообщением об ошибке (по причинам поиска), потому что мне потребовалось некоторое время, чтобы обнаружить это сообщение и понять, что виновником был SSMS 18.8. Я с трудом смог найти результаты поиска с полным сообщением об ошибке: не удалось загрузить тип ‘Microsoft.SQLServer. TransactSQL.ScriptDom. DropExternalStreamStatement «из сборки»Microsoft.SQLServer. TransactSQL.ScriptDom, Version = 15.0.0.0, Culture = нейтральный, PublicKeyToken = 89845dcd8080cc91’. (Microsoft.Data. Инструменты. Schema.Sql)

Ответ №1:

Среди исправлений ошибок в SSMS 18.9:

Исправлена ошибка, из-за которой импорт bacpac в SQL Express мог завершиться неудачно. См. Отзывы пользователей SQL Server.

Эта проблема с SSMS 18.8 была подтверждена командой разработчиков, но была исправлена:

Я приношу извинения за неудобства, связанные с этой проблемой, мы работаем над включением исправления в следующий выпуск SSMS. Тем временем установка SSMS 18.7.1 (https://docs.microsoft.com/sql/ssms/release-notes-ssms?view=sql-server-ver15#1871 ) позволит вам выполнить операции импорта bacpac в SQL Server Express.

Комментарии:

1. Спасибо! Я потратил слишком много времени на решение этой проблемы. Это спасло положение.

2. Как указано в ссылке обратной связи, это было исправлено в исправлено в SSMS 18.9. Поэтому просто загрузите последнюю версию SQL Management Studio

Ответ №2:

Если вместо использования localdb вы можете перейти на SQL Server 2019 Developer Edition или использовать его, тогда у вас не возникнет никаких проблем. Версия для разработчиков бесплатна и обладает теми же функциями, что и Enterprise Edition. Вы можете загрузить версию разработчика отсюда, а затем обновить ее последним накопительным обновлением отсюда, после чего попробуйте импортировать bacpac в экземпляр версии разработчика.

Комментарии:

1. Вы говорите «вместо localdb». Позволит ли мне это издание поддерживать и запускать локальные копии баз данных на моем ноутбуке?

2. ДА. Наверняка. Вы даже можете синхронизировать свои локальные базы данных с Azure, если хотите, вместо того, чтобы экспортировать из базы данных SQL Azure, загрузите bacpac, а затем импортируйте его в экземпляр SQL Server вашего компьютера.

3. Я могу добавить сюда ссылку, как обновить — docs.microsoft.com/en-us/sql/database-engine/install-windows /… . Я обновился с экспресс-версии до версии разработчика через Центр установки SQL Server из Инструментов настройки — обслуживание за несколько минут.

Ответ №3:

Сегодня я снова столкнулся с той же проблемой. Я экспортировал нашу базу данных из Azure в BACPAC, и у меня возникли проблемы с загрузкой SSMS в SQL Express.

По чистой случайности я обнаружил, что SSMS 18.9 был выпущен сегодня и, похоже, устранил проблему в моем случае.