/ / System DMV brakuje w SQL Server 2017 master.dacpac w SSDT 2015 - SQL Server, SSDT

Brak systemu DMV w SQL Server 2017 master.dacpac w SSDT 2015 - sql-server, ssdt

Mam doskonałą konserwację Oli HallengrenSkrypty rozwiązania włączone do projektu bazy danych narzędzi DBA. Utrzymuje się to za pomocą SSDT 2015 z platformą docelową SQL Server 2012. Projekt zawiera odniesienia do wbudowanego systemowego systemu baz danych master & msdb. Projekt buduje się pomyślnie.

Ola niedawno zaktualizowany jego skrypty, które teraz zawierają odniesienia do nowych DMV SQL Server 2017, więc włączenie zaktualizowanych skryptów do mojego projektu bazy danych wygenerowało nierozwiązane błędy referencyjne dla nowych 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]

Chociaż nie mam zainstalowanego programu SQL Server 2017gdziekolwiek próbowałem zaktualizować platformę docelową do SQL Server 2017, a następnie usunąć i ponownie utworzyć odniesienie do głównej bazy danych (tj. zaktualizować master.dacpac do wersji SQL Server 2017), ale to nie usunęło błędów kompilacji.

Ścieżka do pliku dacpac, do którego się odwołuje, to:

C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDEExtensionsMicrosoftSQLDBExtensionsSqlServer140SqlSchemasmaster.dacpac

Kiedy sprawdzam dacpaca, nie ma tam nowych DMV [sys]. [Dm_os_host_info] i [sys]. [Dm_db_log_stats]

Dotarłem wczoraj do Slacka, a Peter Schott odniósł się do doskonałego posta na blogu, który napisał o tym, jak zaktualizować master.dacpac (połączyć). Teoria polega na tym, aby osobiście pobrać brakujące DMV i dodać je do master.dacpac. Musiałbym uruchomić maszynę testową i zainstalować SQL Server 2017, aby to zrobić, ale jest to wykonalne.

Wydaje mi się jednak, że nie powinienem tego robić. W końcu brakuje tu DMV systemu w master.dacpac, zamiast dodawać własny kod do głównej bazy danych.

Myślę, że moje pytania to:

  1. Czy to problem z moją lokalną instalacją SSDT, czy ogólny problem z brakiem DMV systemu w dacpacie instalowanym przez SSDT?
  2. Jak uzyskać zaktualizowany (i podpisany) master.dacpac bez samodzielnego hakowania go?

Odpowiedzi:

0 dla odpowiedzi № 1

Chociaż nie mam rozwiązania oryginalnego problemu (brakuje systemu DMV w pliku master.dacpac), mam odpowiedzi na dwa pytania, które pierwotnie zadałem.

Tak, jest to ogólny problem z urządzeniem głównym.dacpac dostarczany z SSDT. I nie, wydaje się, że nie ma sposobu na uzyskanie zaktualizowanego master.dacpac bez samodzielnego włamania go przy użyciu wcześniej opisanego obejścia.

Teraz podniosłem przedmiot UserVoice, żądając metody aktualizacji DACPACs bazy danych systemu w SSDT. Jeśli masz szansę, rozważ głosowanie na to. Dzięki.