Системный DMV отсутствует в SQL Server 2017 master.dacpac в SSDT 2015 - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть отличные сценарии обслуживания Олы Хелленгрен, включенные в проект базы данных инструментов DBA.Это поддерживается с использованием SSDT 2015 с целевой платформой SQL Server 2012. Проект включает ссылки на встроенные системные базы данных master & msdb.Проект компилируется успешно.

Недавно Ола обновил своих сценариев, и теперь они содержат ссылки на новые DMV-файлы SQL Server 2017, поэтому включение обновленных сценариев в проект базы данных привело к возникновению неразрешенных ошибок ссылок дляновые DMV.

SQL71502: Procedure: [dbo].[DatabaseBackup] has an unresolved reference to object [sys].[dm_os_host_info]
SQL71502: Procedure: [dbo].[DatabaseBackup] has an unresolved reference to object [sys].[dm_db_log_stats]

Хотя SQL Server 2017 нигде не установлен, я попытался обновить целевую платформу до SQL Server 2017, а затем удалить и заново создать ссылку на главную базу данных (т. Е. Обновить master.dacpac доВерсия SQL Server 2017), но это не устранило ошибки сборки.

Путь к файлу для указанного dacpac:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer\140\SqlSchemas\master.dacpac

Когда я проверяю dacpac, новые DMV [sys]. [Dm_os_host_info] и [sys]. [Dm_db_log_stats] aren 't там.

Вчера я связался со Slack, и Питер Шотт сослался на отличное сообщение в своем блоге о том, как обновить master.dacpac ( ссылка ).Теория заключается в том, чтобы взять недостающие DMV и добавить их в master.dacpac самостоятельно.Я должен был раскрутить тестовую машину и установить SQL Server 2017, чтобы сделать это, но это возможно в качестве обходного пути.

Однако мне кажется, что я не должен был этого делать.В конце концов, это системные DMV, отсутствующие в master.dacpac, а не добавление моего собственного кода в базу данных master.

Итак, я думаю, мои вопросы:

  1. Этопроблема с моей локальной установкой SSDT или общая проблема с отсутствием системного DMV в dacpac, который устанавливает SSDT?
  2. Как получить обновленный (и подписанный) master.dacpac, не взломав его самому?

1 Ответ

0 голосов
/ 01 мая 2018

Хотя у меня нет разрешения исходной проблемы (системный DMV отсутствует в master.dacpac), у меня есть ответы на два вопроса, которые я изначально задал.

Да, это общеепроблема с master.dacpac, который поставляется с SSDT.И нет, похоже, нет никакого способа получить обновленный master.dacpac, не взломав его самостоятельно, используя обходной путь, описанный ранее.

Я поднял элемент на UserVoice ,запрос метода обновления базы данных системы DACPAC в SSDT.Пожалуйста, рассмотрите возможность голосования за него, если у вас есть шанс.Спасибо.

...