У меня есть отличные сценарии обслуживания Олы Хелленгрен, включенные в проект базы данных инструментов 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.
Итак, я думаю, мои вопросы:
- Этопроблема с моей локальной установкой SSDT или общая проблема с отсутствием системного DMV в dacpac, который устанавливает SSDT?
- Как получить обновленный (и подписанный) master.dacpac, не взломав его самому?